为Python建造轮子失败

2024-10-03 23:22:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为一个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,但我得到了相同的错误。我错过了什么


Tags: installpipruninpybuildlibusr