【问题标题】:Failed building wheel for pythonnetpythonnet的构建轮子失败
【发布时间】:2020-11-09 20:29:45
【问题描述】:

我正在尝试连接控制器以进行 python 实验。目前,这是我正在尝试运行的代码

import sys

print('adding location of IOPortClientLib.dll & Newport.CONEXAGP.CommandInterfacedll to sys.path')
sys.path.append(r'C:\Program Files\Newport\Piezo Motion Control\Newport CONEX-AGP Applet\Bin')

import clr
clr.AddReference('Newport.CONEXAGP.CommandInterface.dll')

我得到两个不同的结果:

  1. 我从 Ubuntu (WSL) 得到
adding location of IOPortClientLib.dll & Newport.CONEXAGP.CommandInterfacedll to sys.path
Traceback (most recent call last):
  File "conex_test.py", line 7, in <module>
    clr.AddReference('Newport.CONEXAGP.CommandInterface.dll')
AttributeError: module 'clr' has no attribute 'AddReference'
  1. 从 python3 IDLE,我得到了
adding location of IOPortClientLib.dll & Newport.CONEXAGP.CommandInterfacedll to sys.path
Traceback (most recent call last):
  File "C:\Users\natal\Box Sync\Downer group (ndf367@eid.utexas.edu)\Sandia\code\python\conex_test.py", line 6, in <module>
    import clr
ModuleNotFoundError: No module named 'clr'

当我搜索这些错误时,建议我安装pythonnet,所以我在Ubuntu中运行pip3 install pythonnet,这是输出

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Keyring is skipped due to an exception: org.freedesktop.DBus.Error.InvalidFileContent: D-Bus library appears to be incorrectly set up: see the manual page for dbus-uuidgen to correct this issue. (Failed to open "/var/lib/dbus/machine-id": No such file or directory; UUID file '/etc/machine-id' should contain a hex string of length 32, not length 0, with no other text)
Defaulting to user installation because normal site-packages is not writeable
Collecting pythonnet
  Using cached pythonnet-2.5.1.tar.gz (1.9 MB)
Requirement already satisfied: pycparser in /mnt/c/Users/natal/Box Sync/.local/lib/python3.6/site-packages (from pythonnet) (2.20)
Building wheels for collected packages: pythonnet
  Building wheel for pythonnet (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-nhjsfmmw/pythonnet/setup.py'"'"'; __file__='"'"'/tmp/pip-install-nhjsfmmw/pythonnet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-s9sulxcz
       cwd: /tmp/pip-install-nhjsfmmw/pythonnet/
  Complete output (43 lines):
  running bdist_wheel
  running build
  running build_ext
  /bin/sh: 1: mono: not found
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-nhjsfmmw/pythonnet/setup.py", line 659, in <module>
      zip_safe=False,
    File "/mnt/c/Users/natal/Box Sync/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 165, in setup
      return distutils.core.setup(**attrs)
    File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/tmp/pip-install-nhjsfmmw/pythonnet/setup.py", line 612, in run
      return bdist_wheel.bdist_wheel.run(self)
    File "/mnt/c/Users/natal/Box Sync/.local/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 223, in run
      self.run_command('build')
    File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/usr/lib/python3.6/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/usr/lib/python3.6/distutils/command/build_ext.py", line 339, in run
      self.build_extensions()
    File "/usr/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
      self._build_extensions_serial()
    File "/usr/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
      self.build_extension(ext)
    File "/tmp/pip-install-nhjsfmmw/pythonnet/setup.py", line 249, in build_extension
      self._install_packages()
    File "/tmp/pip-install-nhjsfmmw/pythonnet/setup.py", line 438, in _install_packages
      subprocess.check_call(cmd, shell=use_shell)
    File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command 'mono tools/nuget/nuget.exe update -self' returned non-zero exit status 127.
  ----------------------------------------
  ERROR: Failed building wheel for pythonnet
  Running setup.py clean for pythonnet
Failed to build pythonnet
Installing collected packages: pythonnet
    Running setup.py install for pythonnet ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-nhjsfmmw/pythonnet/setup.py'"'"'; __file__='"'"'/tmp/pip-install-nhjsfmmw/pythonnet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ab3ul23l/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers '/mnt/c/Users/natal/Box Sync/.local/include/python3.6m/pythonnet'
         cwd: /tmp/pip-install-nhjsfmmw/pythonnet/
    Complete output (6 lines):
    usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: setup.py --help [cmd1 cmd2 ...]
       or: setup.py --help-commands
       or: setup.py cmd --help

    error: option --single-version-externally-managed not recognized
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-nhjsfmmw/pythonnet/setup.py'"'"'; __file__='"'"'/tmp/pip-install-nhjsfmmw/pythonnet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ab3ul23l/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers '/mnt/c/Users/natal/Box Sync/.local/include/python3.6m/pythonnet' Check the logs for full command output.

我尝试更新setuptoolswheel,就像建议的here 一样,但我得到了同样的错误。我错过了什么?

【问题讨论】:

  • 我确实遇到了这个问题,但似乎没有任何效果。
  • mono tools/nuget/nuget.exe update -self - 该命令返回什么?单声道安装了吗?
  • 似乎缺少一个mono 命令,但我不明白为什么,因为据我所知它是一个开源 C# 编译器

标签: python pip


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2018-01-07
    • 2017-03-17
    • 2018-05-31
    • 2018-06-17
    • 2019-11-11
    • 2022-06-19
    • 2019-05-03
    相关资源
    最近更新 更多