具有entry_points的Setuptools

时间:2012-01-20 10:39:40

标签: python installation setuptools

我想安装一个带有setuptools的脚本,并进行以下设置:

在我的开发目录中有文件

  • setup.py和
  • z_script.py。

z_script.py文件如下所示:

def main():
    print "Running..."

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

from setuptools import setup

setup(
      name = 'z_script', version = '0.2', 
      entry_points = {"console_scripts": ["z_script = z_script:main"]},
      )

当我运行python setup.py install时,脚本已成功安装到正确的bin目录中。

但是,当我使用z_script运行脚本时会发生错误:

Traceback (most recent call last):
  File "./z_script", line 8, in <module>
    load_entry_point('z-script==0.2', 'console_scripts', 'z_script')()
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 318, in load_entry_point
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2221, in load_entry_point
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1954, in load
ImportError: No module named z_script

bin目录可以通过PATH环境变量访问系统,并且在我发出PYTHONPATH时没有设置z_scirpt环境变量。

现在问我的问题:

我的设置有什么问题?为什么脚本找不到正确的模块?

1 个答案:

答案 0 :(得分:5)

您没有指示setuptools安装z_script。在z_script关键字中使用find_packages或列出py_modules

...
packages = find_packages(),
...

...
py_modules = ['z_script'],
...