代码之家  ›  专栏  ›  技术社区  ›  whiletrue

macOS Catalina上的Mujoco:导入和构建Mujoco\u py时:“ld:未知选项:-platform\u版本”

  •  0
  • whiletrue  · 技术社区  · 6 年前

    根据导入mujoco\u py时 this 在文档中,cymj扩展构建失败,出现了一个clang-10错误(见下文)。执行此操作时也会发生此错误 brew uninstall gcc && brew install gcc@x (x为6,8,9)。执行此命令也没有帮助: conda install -c conda-forge openmp 。在运行这些命令之前,Pip和brew已更新/升级至最新版本。mujoco builder中的gcc-9编译器行(以及版本7和8的编译器行)。py处于活动状态。&应用sdk文件夹副本;从此重命名技巧 issue 也没有帮助。

    以下是完整的标准输出/标准输出:

    $ python3
    Python 3.7.7 (default, May  6 2020, 04:59:01)
    [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import mujoco_py
    Import error. Trying to rebuild mujoco_py.
    running build_ext
    building 'mujoco_py.cymj' extension
    /usr/local/opt/llvm/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/fabioferreira/miniconda3/envs/gtn/include -arch x86_64 -I/Users/fabioferreira/miniconda3/envs/gtn/include -arch x86_64 -I/usr/local/opt/llvm/include -DONMAC -I/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py -I/Users/fabioferreira/.mujoco/mujoco200/include -I/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/numpy/core/include -I/Users/fabioferreira/miniconda3/envs/gtn/include/python3.7m -c /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/cymj.c -o /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/generated/_pyxbld_2.0.2.10_37_macextensionbuilder/temp.macosx-10.9-x86_64-3.7/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/cymj.o -fopenmp -w
    /usr/local/opt/llvm/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/fabioferreira/miniconda3/envs/gtn/include -arch x86_64 -I/Users/fabioferreira/miniconda3/envs/gtn/include -arch x86_64 -I/usr/local/opt/llvm/include -DONMAC -I/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py -I/Users/fabioferreira/.mujoco/mujoco200/include -I/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/numpy/core/include -I/Users/fabioferreira/miniconda3/envs/gtn/include/python3.7m -c /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/gl/dummyshim.c -o /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/generated/_pyxbld_2.0.2.10_37_macextensionbuilder/temp.macosx-10.9-x86_64-3.7/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/gl/dummyshim.o -fopenmp -w
    /usr/local/opt/llvm/bin/clang -bundle -undefined dynamic_lookup -L/Users/fabioferreira/miniconda3/envs/gtn/lib -arch x86_64 -L/Users/fabioferreira/miniconda3/envs/gtn/lib -arch x86_64 -L/usr/local/opt/llvm/lib -I/usr/local/opt/llvm/include -arch x86_64 /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/generated/_pyxbld_2.0.2.10_37_macextensionbuilder/temp.macosx-10.9-x86_64-3.7/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/cymj.o /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/generated/_pyxbld_2.0.2.10_37_macextensionbuilder/temp.macosx-10.9-x86_64-3.7/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/gl/dummyshim.o -L/Users/fabioferreira/.mujoco/mujoco200/bin -L/Users/fabioferreira/.mujoco/mujoco200/bin -lmujoco200 -lglfw.3 -o /Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/generated/_pyxbld_2.0.2.10_37_macextensionbuilder/lib.macosx-10.9-x86_64-3.7/mujoco_py/cymj.cpython-37m-darwin.so -fopenmp
    ld: unknown option: -platform_version <------------------------------ error
    clang-10: error: linker command failed with exit code 1 (use -v to see invocation) <-------------- error
    Traceback (most recent call last):
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/unixccompiler.py", line 205, in link
        self.spawn(linker + ld_args)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/ccompiler.py", line 910, in spawn
        spawn(cmd, dry_run=self.dry_run)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/spawn.py", line 36, in spawn
        _spawn_posix(cmd, search_path, dry_run=dry_run)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/spawn.py", line 159, in _spawn_posix
        % (cmd, exit_status))
    distutils.errors.DistutilsExecError: command '/usr/local/opt/llvm/bin/clang' failed with exit status 1
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/__init__.py", line 3, in <module>
        from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/builder.py", line 510, in <module>
        cymj = load_cython_ext(mujoco_path)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/builder.py", line 105, in load_cython_ext
        cext_so_path = builder.build()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/builder.py", line 221, in build
        built_so_file_path = self._build_impl()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/builder.py", line 338, in _build_impl
        so_file_path = super()._build_impl()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/builder.py", line 244, in _build_impl
        dist.run_commands()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
        _build_ext.build_ext.run(self)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/command/build_ext.py", line 340, in run
        self.build_extensions()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/mujoco_py/builder.py", line 144, in build_extensions
        build_ext.build_extensions(self)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
        _build_ext.build_ext.build_extensions(self)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/command/build_ext.py", line 449, in build_extensions
        self._build_extensions_serial()
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/command/build_ext.py", line 474, in _build_extensions_serial
        self.build_extension(ext)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/command/build_ext.py", line 559, in build_extension
        target_lang=language)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/ccompiler.py", line 717, in link_shared_object
        extra_preargs, extra_postargs, build_temp, target_lang)
      File "/Users/fabioferreira/miniconda3/envs/gtn/lib/python3.7/distutils/unixccompiler.py", line 207, in link
        raise LinkError(msg)
    distutils.errors.LinkError: command '/usr/local/opt/llvm/bin/clang' failed with exit status 1
    

    版本:

    • 操作系统:[例如macOS 10.13.6]macOS 10.15.5
    • Python版本[例如3.6.6]Python 3.7.7
    • Mujoco版本[例如1.50]2.0.0
    • mujoco py版本[例如1.50.1.59]2.0.2.10

    其他上下文

    $ brew info llvm
    llvm: stable 10.0.0 (bottled), HEAD [keg-only]
    Next-gen compiler infrastructure
    https://llvm.org/
    /usr/local/Cellar/llvm/10.0.0_3 (7,055 files, 1GB)
      Poured from bottle on 2020-07-03 at 19:38:12
    From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/llvm.rb
    ==> Dependencies
    Build: cmake ✔, python@3.8 ✔
    Required: libffi ✔
    ==> Requirements
    Build: xcode ✔
    ==> Options
    --HEAD
    
    $ brew info gcc
    gcc: stable 10.1.0 (bottled), HEAD
    GNU compiler collection
    https://gcc.gnu.org/
    /usr/local/Cellar/gcc/10.1.0 (1,463 files, 338.5MB) *
      Poured from bottle on 2020-07-03 at 19:31:35
    From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb
    ==> Dependencies
    Required: gmp ✔, isl ✔, libmpc ✔, mpfr ✔
    ==> Options
    --HEAD
    
    $ brew info boost
    boost: stable 1.72.0 (bottled), HEAD
    Collection of portable C++ source libraries
    https://www.boost.org/
    /usr/local/Cellar/boost/1.72.0_3 (14,466 files, 563.8MB) *
      Poured from bottle on 2020-07-03 at 19:31:23
    From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/boost.rb
    ==> Dependencies
    Required: icu4c ✔
    ==> Options
    --HEAD
    
    $ brew info hdf5
    hdf5: stable 1.12.0 (bottled)
    File format designed to store large amounts of data
    https://www.hdfgroup.org/HDF5
    /usr/local/Cellar/hdf5/1.12.0_1 (268 files, 16.3MB) *
      Poured from bottle on 2020-07-03 at 19:31:39
    From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/hdf5.rb
    ==> Dependencies
    Build: autoconf ✔, automake ✔, libtool ✔
    Required: gcc ✔, szip ✔
    
    $ /usr/bin/xcodebuild -version
    Xcode 11.5
    Build version 11E608c
    
    $ ld -v
    @(#)PROGRAM:ld  PROJECT:ld64-274.2
    configured to support archs: i386 x86_64 x86_64h armv6 armv7 armv7s armv7m armv7k arm64 (tvOS)
    LTO support using: LLVM version 5.0.0
    

    我的~/中有以下几行。zshrc:

     15 # mujoco
     16 export PATH="/usr/local/opt/llvm/bin:$PATH"
     17
     18 export CC="/usr/local/opt/llvm/bin/clang"
     19 export CXX="/usr/local/opt/llvm/bin/clang++"
     20 export CXX11="/usr/local/opt/llvm/bin/clang++"
     21 export CXX14="/usr/local/opt/llvm/bin/clang++"
     22 export CXX17="/usr/local/opt/llvm/bin/clang++"
     23 export CXX1X="/usr/local/opt/llvm/bin/clang++"
     24 export LDFLAGS="-L/usr/local/opt/llvm/lib"
     25 export CPPFLAGS="-I/usr/local/opt/llvm/include"
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   Jeremy Caney Abloin    6 年前

    将此用作参考( https://reviews.llvm.org/D74784 )我自己刚刚经历了这场头痛。似乎有一个问题 ld 存在旧的默认选项时 -platform_version 这是不赞成的。

    尽管从事LLVM工作的优秀人员修复了它,但我的问题是LLVM会说它是最新的。为了让它再次工作,我必须运行以下命令:

    brew reinstall llvm
    

    如果卸载LLVM(并在 .zshrc 如果强制重新安装方法对您不起作用,它也应该起作用。对于我来说,没有LLVM的默认叮当声是:

    > clang -v
    Apple clang version 11.0.3 (clang-1103.0.32.62)
    Target: x86_64-apple-darwin19.5.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
    
    推荐文章