ImportError: No module... 在 python setup.py install 之后
Posted
技术标签:
【中文标题】ImportError: No module... 在 python setup.py install 之后【英文标题】:ImportError: No module... After python setup.py install 【发布时间】:2018-08-24 01:26:07 【问题描述】:我在安装我的一个 python 脚本时遇到问题。它的结构如下:
myproject
setup.py
src
myproject
otherfolders
main.py
__init__.py
我的setup.py
创建一个像这样的入口点:
from setuptools import setup, find_packages
setup(name='mypackage',
version='2.4.0',
author='me',
author_email='...',
package_dir='':'src',
packages=find_packages('myproject'),
install_requires=[
"networkx",
"geopy",
"pyyaml"
],
zip_safe=False,
entry_points=
'console_scripts': [
'myproject=myproject.main:main',
],
,
)
现在,使用sudo python setup.py install
成功安装后,我运行mypackage
并收到导入错误:No module named mypackage.main
。
我知道有很多类似的问题,我尝试了here 建议的大多数/所有解决方案,例如,检查__init__.py
并设置PYTHONPATH
,但问题仍然存在。
我在两台不同的 Ubuntu 16.04 机器上运行它。
我很确定这在以前有效,但即使我回到较早的提交,它现在也不起作用。
我注意到安装可以使用develop
,但仍然无法使用install
。这对任何人都有意义吗?
【问题讨论】:
您的目标是哪个 Python 版本?目前是 2.7 脚本是用 Python 3.5 编写的。我也尝试使用sudo python3 setup.py install
安装它(也成功),但是当我运行它时,我得到了类似的错误:ModuleNotFoundError: No module named 'myproject
python setup.py 的东西是 python 最糟糕的地方。
【参考方案1】:
packages=find_packages('mypackage')
-> packages=find_packages('myproject')
.
你也应该使用myproject.main
。
【讨论】:
你是对的。但这只是将其复制到***时的错字。在我的 git 中是正确的。我编辑了问题【参考方案2】:问题出在find_packages()
:
一些项目使用 src 或 lib 目录作为其源代码树的根目录,这些项目当然会使用“src”或“lib”作为
find_packages()
的第一个参数。
因此,我不得不将 find_packages('myproject')
更改为 find_packages('src')
。
【讨论】:
以上是关于ImportError: No module... 在 python setup.py install 之后的主要内容,如果未能解决你的问题,请参考以下文章
ImportError : No module named graphics
python27 ImportError: No module named site
Python中ImportError: No module named request
ImportError: No module named win32api