繁体   English   中英

安装的Python软件包不会导入模块

[英]Python installed package won't import modules

我想创建一个名为“刀”的python应用程序,可以从CLI执行该程序,问题是它无法导入模块。

我的文件结构是这样的:

my_project/
    knife/
        __init__.py
        knife.py
        external.py
    setup.py

我的setup.py看起来像这样:

#!/usr/bin/python

from setuptools import setup, find_packages

setup(name='Knife',
      version='0.3',
      description='Very cool project',
      author='John Doe',
      author_email='author@email.com',
      packages=find_packages(),
      py_modules=['knife.external'],
      scripts=['knife/knife.py'],
     )

我的knife.py看起来像这样:

#!/usr/bin/python

import external

def main():
    print("Execute main function")

if __name__ == "__main__":
    main()

因此,在使用setup.py install安装模块后,我尝试运行“ knife”,但仍然会抛出此错误:

$ knife.py 
Traceback (most recent call last):
  File "/usr/bin/knife.py", line 4, in <module>
    __import__('pkg_resources').run_script('Knife==0.3', 'knife.py')
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 723, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1643, in run_script
    exec(script_code, namespace, namespace)
  File "/usr/lib/python2.7/site-packages/Knife-0.3-py2.7.egg/EGG-INFO/scripts/knife.py", line 3, in <module>
    __requires__ = 'Knife==0.3'
ImportError: No module named external

到底发生了什么事? 以及我该如何解决?

external.py也应该发货。 因此setup.py添加了external.py:

  scripts=['knife/knife.py', 'knife/external.py'],

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM