6

I am trying to interface a controller for an experiment with python. Currently, this is the code I'm trying to run

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')

and I get two different results:

  1. From Ubuntu (WSL) I get
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. From python3 IDLE, I get
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'

When I searched for these errors, I was recommended to install pythonnet, so I ran pip3 install pythonnet in Ubuntu and this is the output

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.

I've tried updating setuptools and wheel like it was suggested here but I get the same error. What am I missing?

user66091
  • 61
  • 1
  • 5

1 Answers1

0

Possible duplicates:

I answered the question @ https://stackoverflow.com/a/67844539/14409072. The answer for me was to use an older, Python.NET-supported version of Python.

The current Python.NET supported versions should be listed @ http://pythonnet.github.io/.

PG11
  • 155
  • 5
Samuel
  • 8,063
  • 8
  • 45
  • 41