首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法运行catkin_make,无法解析UnicodeDecodeError

无法运行catkin_make,无法解析UnicodeDecodeError
EN

Stack Overflow用户
提问于 2016-04-24 18:22:12
回答 2查看 807关注 0票数 0

这让我抓狂,我已经尝试了很多事情,例如改变语言环境,但是在工作空间初始化之后仍然会得到这个,然后在子目录上执行catkin_make。

在最近安装的arch dist、ros-indigo、python2.7和python3.5上运行

代码语言:javascript
复制
johnny@localhost:~/ros$ catkin_make
Base path: /home/johnny/ros
Source space: /home/johnny/ros/src
Build space: /home/johnny/ros/build
Devel space: /home/johnny/ros/devel
Install space: /home/johnny/ros/install
####
#### Running command: "cmake /home/johnny/ros/src -DCATKIN_DEVEL_PREFIX=/home/johnny/ros/devel -DCMAKE_INSTALL_PREFIX=/home/johnny/ros/install -G Unix Makefiles" in "/home/johnny/ros/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/johnny/ros/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/indigo
-- This workspace overlays: /opt/ros/indigo
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using default Python package layout
-- Using empy: /usr/lib/python2.7/site-packages/em.py
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/johnny/ros/build/test_results
-- Found gtest: gtests will be built
CMake Warning at /opt/ros/indigo/share/catkin/cmake/test/nosetests.cmake:96 (message):
  nosetests not found, Python tests can not be run (try installing package
  'python3-nose')
Call Stack (most recent call first):
  /opt/ros/indigo/share/catkin/cmake/all.cmake:147 (include)
  /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:52 (find_package)


-- catkin 0.6.18
-- BUILD_SHARED_LIBS is on
/opt/ros/indigo/share/catkin/cmake/em/order_packages.cmake.em:23: error: <class 'UnicodeDecodeError'>: 'ascii' codec can't decode byte 0xc3 in position 205: ordinal not in range(128)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/em.py", line 3302, in <module>
    if __name__ == '__main__': main()
  File "/usr/lib/python2.7/site-packages/em.py", line 3300, in main
    invoke(sys.argv[1:])
  File "/usr/lib/python2.7/site-packages/em.py", line 3283, in invoke
    interpreter.wrap(interpreter.file, (file, name))
  File "/usr/lib/python2.7/site-packages/em.py", line 2295, in wrap
    self.fail(e)
  File "/usr/lib/python2.7/site-packages/em.py", line 2284, in wrap
    callable(*args)
  File "/usr/lib/python2.7/site-packages/em.py", line 2359, in file
    self.safe(scanner, done, locals)
  File "/usr/lib/python2.7/site-packages/em.py", line 2401, in safe
    self.parse(scanner, locals)
  File "/usr/lib/python2.7/site-packages/em.py", line 2421, in parse
    token.run(self, locals)
  File "/usr/lib/python2.7/site-packages/em.py", line 1425, in run
    interpreter.execute(self.code, locals)
  File "/usr/lib/python2.7/site-packages/em.py", line 2595, in execute
    _exec(statements, self.globals, locals)
  File "<string>", line 17, in <module>
  File "/usr/lib/python2.7/site-packages/catkin_pkg/topological_order.py", line 111, in topological_order
    for path, package in find_packages(space).items():
  File "/usr/lib/python2.7/site-packages/catkin_pkg/packages.py", line 83, in find_packages
    packages = find_packages_allowing_duplicates(basepath, exclude_paths=exclude_paths, exclude_subspaces=exclude_subspaces, warnings=warnings)
  File "/usr/lib/python2.7/site-packages/catkin_pkg/packages.py", line 110, in find_packages_allowing_duplicates
    packages[path] = parse_package(os.path.join(basepath, path), warnings=warnings)
  File "/usr/lib/python2.7/site-packages/catkin_pkg/package.py", line 370, in parse_package
    return parse_package_string(f.read(), filename, warnings=warnings)
  File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 205: ordinal not in range(128)
CMake Error at /opt/ros/indigo/share/catkin/cmake/safe_execute_process.cmake:11 (message):
  execute_process(/home/johnny/ros/build/catkin_generated/env_cached.sh
  "/usr/bin/python" "/usr/lib/python2.7/site-packages/em.py" "--raw-errors"
  "-F" "/home/johnny/ros/build/catkin_generated/order_packages.py" "-o"
  "/home/johnny/ros/build/catkin_generated/order_packages.cmake"
  "/opt/ros/indigo/share/catkin/cmake/em/order_packages.cmake.em") returned
  error code 1
Call Stack (most recent call first):
  /opt/ros/indigo/share/catkin/cmake/em_expand.cmake:25 (safe_execute_process)
  /opt/ros/indigo/share/catkin/cmake/catkin_workspace.cmake:35 (em_expand)
  CMakeLists.txt:63 (catkin_workspace)


-- Configuring incomplete, errors occurred!
See also "/home/johnny/ros/build/CMakeFiles/CMakeOutput.log".
See also "/home/johnny/ros/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed'

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-05-02 00:10:43

这看起来像是unicode的问题。简而言之,您已经将被解释为字节字符串的内容传递给需要将其解码为Unicode字符的内容,但是默认的编解码器(ascii)失败了。有关此here的更多信息。

这个问题有很多解决方案。我建议这样做:

代码语言:javascript
复制
yassin@pc:/usr/local/lib/python2.7/site-packages# cat sitecustomize.py
# encoding=utf8  
import sys  

reload(sys)  
sys.setdefaultencoding('utf8')

要检查这是否有效,您需要执行以下操作:

代码语言:javascript
复制
yassin@pc:~/home# python
Python 2.7.6 (default, Dec  6 2013, 14:49:02)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.getdefaultencoding()
'utf8'
>>>

希望它能帮上忙!干杯。

票数 0
EN

Stack Overflow用户

发布于 2021-08-23 11:29:46

将系统默认区域设置设置为en_IN.utf8应该可以解决此问题。

例如,如果您使用bash,则可以在~/.bashrc中添加以下行:

代码语言:javascript
复制
LANG=en_IN.utf8
export LANG

catkin工具包使用系统默认区域设置来加载消息或服务文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36821885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档