具有entry_points的Setuptools

Wol*_*tan 4 python installation setuptools

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

在我的开发目录中有文件

  • setup.py和
  • z_script.py.

z_script.py文件如下所示:

def main():
    print "Running..."
Run Code Online (Sandbox Code Playgroud)

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

from setuptools import setup

setup(
      name = 'z_script', version = '0.2', 
      entry_points = {"console_scripts": ["z_script = z_script:main"]},
      )
Run Code Online (Sandbox Code Playgroud)

当我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
Run Code Online (Sandbox Code Playgroud)

bin通过PATH环境变量可以访问该目录,从系统开始,PYTHONPATH当我发出时没有设置环境变量z_scirpt.

现在问我的问题:

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

mg.*_*mg. 5

您没有指示setuptools安装z_script.使用find_packages或列表z_script中的py_modules关键字.

...
packages = find_packages(),
...
Run Code Online (Sandbox Code Playgroud)

要么

...
py_modules = ['z_script'],
...
Run Code Online (Sandbox Code Playgroud)