ImportError:没有模块......在python setup.py安装之后

时间:2018-03-15 09:42:55

标签: python installation python-import setuptools importerror

我在安装我的一个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。这对任何人都有意义吗?

2 个答案:

答案 0 :(得分:1)

问题出在find_packages()

  

某些项目使用src或lib目录作为其源代码树的根,并且这些项目当然会使用“ src”或“ lib”作为find_packages()的第一个参数。

因此,我不得不将find_packages('myproject')更改为find_packages('src')

答案 1 :(得分:0)

packages = find_packages(' mypackage') - >包= find_packages(' myproject的&#39)。

另外你应该使用myproject.main。