使用setuptools安装后找不到模块

时间:2019-01-29 09:25:19

标签: python windows setuptools entry-point

我正在分发一个Python软件包,我已经编写了该软件包,并且在使用setuptools安装后访问它时遇到了问题。

该软件包的结构如下

mypackage
   ├── setup.py
   ├── mymodule
         ├── __init__.py
         ├── somefile.py
         ├── mysubmodule
                ├── __init__.py
                ├── entry_file.py

使用setuptools(40.7.0)安装后,它在我的本地 Windows 10 计算机上运行良好。但是,在具有完全相同的Python和pip软件包版本的 Windows 2012 Server R2 Standard 上,会出现以下错误:

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'

从Windows服务器的软件包目录中的命令行启动Python并运行

>>> import mymodule
>>> mymodule.mysubmodule.entry_file.main()

可以找到mysubmoduleentry_file.py,程序将按预期运行。

我的setup.py文件中的entry_point的配置如下

  entry_points={
      'console_scripts': ['mymodule=mymodule.mysubmodule.entry_file:main']
  },

为什么安装在 Windows 2012 Server R2 Standard 上时找不到mysubmodule,而C:\Python36\Scripts\mymodule-script.py无法解析entry_point?

0 个答案:

没有答案