Search code examples
pythonpython-c-api

What does 'PYVERNODOTS' in Python C-extension modules mean?


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.


Solution

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