Я распространяю пакет Python, который я написал, и сталкиваюсь с проблемами доступа к нему после установки с помощью setuptools.
Пакет структурирован следующим образом
mypackage
├── setup.py
├── mymodule
├── __init__.py
├── somefile.py
├── mysubmodule
├── __init__.py
├── entry_file.py
После установки с помощью setuptools (40.7.0), он хорошо работает на моей локальной Windows 10 машине.Однако в Windows 2012 Server R2 Standard с точно такими же версиями пакетов Python и pip выдается следующая ошибка:
PS C:\mypath\mypackage> mymodule
Traceback (most recent call last):
File "C:\Python36\Scripts\mymodule-script.py", line 11, in <module>
load_entry_point('mymodule==0.1.0', 'console_scripts', 'mymodule')()
File "C:\Python36\lib\site-packages\pkg_resources\__init__.py", line 487, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "C:\Python36\lib\site-packages\pkg_resources\__init__.py", line 2728, in load_entry_point
return ep.load()
File "C:\Python36\lib\site-packages\pkg_resources\__init__.py", line 2346, in load
return self.resolve()
File "C:\Python36\lib\site-packages\pkg_resources\__init__.py", line 2352, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'mymodule.mysubmodule'
При запуске Python из командной строки в каталоге пакетасервера Windows и под управлением
>>> import mymodule
>>> mymodule.mysubmodule.entry_file.main()
mysubmodule
и entry_file.py
могут быть найдены, и программа работает как положено.
Точка входа в моем файле setup.py
настроена какследует
entry_points={
'console_scripts': ['mymodule=mymodule.mysubmodule.entry_file:main']
},
Почему mysubmodule
не найден при установке на Windows 2012 Server R2 Standard и C:\Python36\Scripts\mymodule-script.py
не может разрешить точку входа?