Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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命令行应用程序的最佳布局是什么?_Python_Packaging_Setuptools_Distribute - Fatal编程技术网

什么';python命令行应用程序的最佳布局是什么?

什么';python命令行应用程序的最佳布局是什么?,python,packaging,setuptools,distribute,Python,Packaging,Setuptools,Distribute,设计一个中等复杂度的命令行python应用程序的正确方法是什么(或者我会选择一种好方法)?我已经使用paster创建了一个python项目框架,这给了我一些文件作为开始: myproj/__init__.py MyProj.egg-info/ dependency_links.txt entry_points.txt PKG-INFO SOURCES.txt top_level.txt zip-safe setup.cfg setup.py 我主要想知道,我的程序入口点应该放在哪里

设计一个中等复杂度的命令行python应用程序的正确方法是什么(或者我会选择一种好方法)?我已经使用paster创建了一个python项目框架,这给了我一些文件作为开始:

myproj/__init__.py
MyProj.egg-info/
 dependency_links.txt
 entry_points.txt
 PKG-INFO
 SOURCES.txt
 top_level.txt
 zip-safe
setup.cfg
setup.py

我主要想知道,我的程序入口点应该放在哪里,以及如何将其安装到path上?setuptools是否为我创建了它?我试图在HHGTP中找到它,但可能只是缺少了它。

您不需要创建所有这些,setuptools会生成
.egg info
目录。您提到了命令行,所以我假设您在某个地方有一个“顶级”脚本,比如说
myproj-bin
。那么这就行了:

./setup.py
./myproj
./myproj/__init__.py
./scripts
./scripts/myproj-bin
然后将类似的内容放入
setup.py

#! /usr/bin/python

from setuptools import setup

setup(name="myproj",
      description='shows how to create a python package',
      version='123',
      packages=['myproj'],  # python package names here
      scripts=['scripts/myproj-bin'],  # scripts here
      )
如果您的项目很复杂,您还可以做很多事情,这里有完整的setuptools手册: