2

When I want to compile Python C-extension modules on Linux, the file name of the compiled modules is for example <name-of-module>.cpython-@PYVERNODOTS@m-x86_64-linux-gnu.so. However this only happens, when I compile for Python 3.7, in Python 3.6 the file name is <name-of-module>.cpython-36m-x86_64-linux-gnu.so. The problem is, that Python 3.7 is unable to import the module with PYVERNODOTS in the file name, so here are my questions: What does PYVERNODOTS mean? How can I fix the import issue?

EDIT:

I tested this on Ubuntu with Python 3.7.4 from Anaconda. The complete setup script is hosted at https://github.com/biotite-dev/biotite/blob/master/setup.py.

Padix Key
  • 857
  • 6
  • 15
  • 1
    36 is the Python version without dots of Python 3.6 Seems to be something wrong with Python 3.7. Maybe you should give details about how you compile the Python C-extension modules on your Linux (and details about your Linux), so the problem becomes reproducible. – NoDataDumpNoContribution Aug 13 '19 at 10:57
  • Upgrade to the latest Python version available from Anaconda, i.e. 3.7.4-h265db76_1, and the problem should go away. – Cristian Ciupitu Aug 15 '19 at 07:37

1 Answers1

1

This seems to be an issue with Python 3.7.4. Running the compilation under Python 3.7.3 fixed this problem.

Padix Key
  • 857
  • 6
  • 15