Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python setuptools:加载时导入错误\u入口\u点_Python_Python 2.7_Setuptools_Setup.py_Entry Point - Fatal编程技术网

Python setuptools:加载时导入错误\u入口\u点

Python setuptools:加载时导入错误\u入口\u点,python,python-2.7,setuptools,setup.py,entry-point,Python,Python 2.7,Setuptools,Setup.py,Entry Point,我正在尝试在安装包时创建入口点。 这是我的包裹: . ├── foo │   ├── example.py │   └── __init__.py └── setup.py 我的setup.py是: import sys from setuptools import setup, find_packages console_scripts = \ ['foo.py = foo.example:main'] setup(name='foo', version='1.1.

我正在尝试在安装包时创建入口点。 这是我的包裹:

.
├── foo
│   ├── example.py
│   └── __init__.py
└── setup.py
我的setup.py是:

import sys
from setuptools import setup, find_packages


console_scripts = \
    ['foo.py = foo.example:main']

setup(name='foo',
      version='1.1.1',
      author='me',
      author_email='me',
      url='',
      entry_points={'console_scripts': console_scripts},
      include_package_data=True,
      packages=find_packages(),
      zip_safe=False)
这是example.py:

def main():
    print "hello world"
我正在这样安装:

python setup.py sdist
pip install dist/foo-1.1.1.tar.gz
它很好用。但当我尝试使用入口点/usr/bin/foo.py时,我得到了以下回溯:

Traceback (most recent call last):
  File "/usr/bin/foo.py", line 11, in <module>
    load_entry_point('foo==1.1.1', 'console_scripts', 'foo.py')()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 570, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2751, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2405, in load
    return self.resolve()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2411, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named example
回溯(最近一次呼叫最后一次):
文件“/usr/bin/foo.py”,第11行,在
加载入口点('foo==1.1.1','console\u scripts','foo.py')()
文件“/usr/lib/python2.7/site packages/pkg_resources/_init__.py”,第570行,在加载入口点
返回获取分布(dist)。加载入口点(组、名称)
文件“/usr/lib/python2.7/site packages/pkg_resources/_init__.py”,第2751行,在加载入口点
返回ep.load()
文件“/usr/lib/python2.7/site packages/pkg_resources/_init__.py”,第2405行,已加载
返回self.resolve()
文件“/usr/lib/python2.7/site packages/pkg_resources/_init__.py”,第2411行,解析中
module=\uuuu导入(self.module\u name,fromlist=[''\uuuu name\uuuuuuu'],级别=0)
ImportError:没有名为example的模块

在pythonshell中导入foo模块也很好。

您将入口点脚本命名为
foo.py
。当您运行它时,可以从
foo
从脚本导入任何导入。也就是说,您对包
foo
进行了阴影处理。脚本没有子模块
示例
,因此出现错误

不要将脚本命名为
foo.py
,只需将其命名为
foo

console_scripts = \
    ['foo = foo.example:main']

如果需要扩展名,也可以将其命名为
bar.py
。这样,它就不会对您命名的入口点脚本包
foo.py
进行阴影处理。当您运行它时,可以从
foo
从脚本导入任何导入。也就是说,您对包
foo
进行了阴影处理。脚本没有子模块
示例
,因此出现错误

不要将脚本命名为
foo.py
,只需将其命名为
foo

console_scripts = \
    ['foo = foo.example:main']
如果需要扩展名,也可以将其命名为
bar.py
。这样它就不会对包
foo
产生阴影