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

ImportError: No module named zookeeper 问题解决

ImportError: No module named PIL