一种使用动态发现的sys.path运行python模块、包和脚本的方便方法。当您希望在不首先安装软件包的情况下使用这些软件包,或者避免使用复杂的python软件集合来解决引导问题时,这一点特别有用。
pyrun的Python项目详细描述
您无需安装 项目,直接运行pyrun.py文件。
例如,以下各项:
wget http://svn.wiretooth.com/svn/open/pyrun/trunk/pyrun.py python pyrun.py my/python/libs my/python/scripts/go.py
是运行带有sys.path的go.py模块所需的全部 从my/python/libs下的目录中自动发现。你可以 列出任意数量的目录和到实际python文件的路径。这个 顺序列出它们控制路径扩展项的顺序 建造。结果路径将不包含任何重复项。中的每个条目 路径扩展将是合法的导入路径。
- 注意:
- 提供一个setup.py文件-带有合适的egg入口点声明 -如果您喜欢的话。
对于标识python文件的每个参数,pyrun将定位根 打包目录并将其添加到路径中。带点的模块名absolute 以这种方式标识的第一个python文件中的模块 默认情况下,执行为“主”。您可以通过 使用pyrun的-m选项。
- 注意:
- 根包是“最顶层包”的父目录请参见 distutils python terms和distutils distutils terms
参数和选项与 目标模块是发现后遇到的第一个非选项参数 路径。如果该选项是一个pyrun选项(列表请参见pyrun --help) 然后pyrun接受它并将所有剩余的参数传递给目标模块 在经过适当按摩的sys.argv中。
如果目标模块接受参数但不自然接受选项 作为它的第一个参数(python setup.py install是典型的示例),然后 您可以使用--人工终止pyrun选项。
例如,可以在 以下方法
If you have setup tools installed:
python setup.py bdist_eggIf your python distribution has not removed distutls from the python standard library:
python setup.py sdistIf you have a copy of the setuptools egg in ^{tt8}$:
python pyrun.py ../python/eggs -m setup bdist_egg python pyrun.py ../python/eggs setup.py -- bdist_egg
如果您有一个包含docutils源树或安装的目录 然后将其添加到发现路径将使setup.py脚本生成 this文档。
如果没有一个非option参数标识python模块文件,则 不要使用-m显式地选择一个,那么pyrun将只打印路径 它发现并退出。您可以强制使用^{tt10}打印路径$ 或-P
就python egg发行版而言,pyrun是相当聪明的。什么时候? 在发现路径上发现同一项目的多个egg分布 路径扩展中只包含找到的best版本。鸡蛋 与当前python解释器不兼容将被忽略。衡量 一个项目的best egg使用的算法与 由setuptools项目分发的pkg_resources.py模块。
- 注意:
- 当前版本不会筛选出鸡蛋的不兼容平台 包含c扩展名的-如果您有时间的话,请参见pyrun.filter_best_eggs 你的手,加这张支票没什么用。
此软件包的问题跟踪程序位于:
http://trac.wiretooth.com/public/wiki/pyrun
开罚单时,请将其分配给pyrun组件,或者至少, 在你的票务摘要中提到皮伦。