ModuleNotFoundError mit setup.py unter Verwendung eines kompilierten Pyc-ModulsPython

Python-Programme
Anonymous
 ModuleNotFoundError mit setup.py unter Verwendung eines kompilierten Pyc-Moduls

Post by Anonymous »

Normalerweise kann ich ein kompiliertes .pyc-Modul sowie .py importieren, aber wenn ich versuche, ein einfaches Projekt mit setup.py zu packen, erhalte ich den ModuleNotFoundError< /code>-Ausnahme für das kompilierte .pyc-Modul. Da dies nur passiert, wenn setup.py verwendet wird, andernfalls funktioniert es einwandfrei. Ich weiß nicht, ob ich irgendetwas tun müsste, damit setup.py funktioniert.
Die Projektstruktur sieht derzeit etwa so aus:

Code: Select all

proj
├── FAILING.pyc
├── __init__.py
├── aux/
│   ├── __init__.py
│   └── aux.c
└── main.py
und die setup.py:

Code: Select all

from setuptools import setup, Extension, find_packages

DISTNAME = 'proj'

INSTALL_REQUIRES = [
'cython>=0.29.13',
'numpy>=1.16.4'
]
PYTHON_REQUIRES = '>=3.6'

ENTRY_POINTS = {
'console_scripts': ['proj = proj.main:main']
}

def setup_extensions(metadata):
ext_modules = [Extension('proj.aux.aux', sources=['proj/aux/aux.c'])]
metadata['ext_modules'] = ext_modules

def setup_package():
metadata = dict(
name=DISTNAME,
version='0.1',
package_dir={'': '.'},
packages=find_packages(),
entry_points=ENTRY_POINTS,
python_requires=PYTHON_REQUIRES,
install_requires=INSTALL_REQUIRES,
zip_safe=False,
)
setup_extensions(metadata)
setup(**metadata)

if __name__ == '__main__':
setup_package()
Die main.py:

Code: Select all

#!/usr/bin/env python3

import proj.aux.aux as aux
import proj.FAILING

def main():
print('Hello World')
Wenn ich nur versuche, FAILING.pyc in die Replik zu importieren, funktioniert alles wie erwartet:

Code: Select all

>>> import FAILING
>>>
Aber wenn ich zuerst python3 setup.py install ausführe und dann proj aufrufe, erhalte ich die folgende Fehlermeldung:

Code: Select all

$ proj
Traceback (most recent call last):
File "/path/to/bin/proj", line 11, in 
load_entry_point('proj==0.1', 'console_scripts', 'proj')()
File "/path/to/lib/python3.8/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/path/to/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point
return ep.load()
File "/path/to/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2443, in load
return self.resolve()
File "/path/to/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2449, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/path/to/lib/python3.8/site-packages/proj-0.1-py3.8-macosx-10.14-x86_64.egg/proj/main.py", line 4, in 
import proj.FAILING
ModuleNotFoundError: No module named 'proj.FAILING'
Ich führe dies auch in einer Virtualenv-Umgebung aus, obwohl ich vermute, dass dies nicht mit dem Fehler zusammenhängt.
Was mache ich? falsch, oder was müsste ich ändern, damit das funktioniert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post