Python 从包运行脚本
我是来自java的python新手。我创建了一个名为“Project”的文件夹。在“Project”中,我创建了许多包(带有Python 从包运行脚本,python,Python,我是来自java的python新手。我创建了一个名为“Project”的文件夹。在“Project”中,我创建了许多包(带有\uu init\uuuuuuuuupy.py文件),比如“test1”和“tests2”test1'包含一个python脚本文件.py,该文件使用来自“test2”的脚本(从test2导入模块)。我想从命令行在“test1”中运行脚本x.py。我该怎么做 编辑:如果你对我如何更好地组织我的文件有更好的建议,我将不胜感激。(注意我的java心态) 编辑:我需要从bash脚本
\uu init\uuuuuuuuupy.py
文件),比如“test1”和“tests2”test1'包含一个python脚本文件.py
,该文件使用来自“test2”的脚本(从test2导入模块)。我想从命令行在“test1”中运行脚本x.py
。我该怎么做
编辑:如果你对我如何更好地组织我的文件有更好的建议,我将不胜感激。(注意我的java心态)
编辑:我需要从bash脚本运行脚本,所以我需要提供完整的路径。可能有几种方法可以实现您想要的 当我需要确保可执行脚本中的模块路径正确时,我要做的一件事是获取父目录并插入模块搜索路径(
sys.path
):
这样,您就可以安全地运行脚本,而不用担心脚本如何调用。Python代码被组织到模块和包中。模块只是一个
.py
文件,可以包含类定义、函数定义和变量。包是包含\uuuu init\uuuu.py
文件的目录
标准Python项目可能如下所示:
thingsproject/
README
setup.py
doc/
...
things/
__init__.py
animals.py
vegetables.py
minerals.py
test/
test_animals.py
test_vegetables.py
test_minerals.py
setup(
name='thingsproject',
....
entry_points = {
'console_scripts': ['dog = things.animals:dog_main_function']
},
...
)
setup.py文件描述了有关项目的元数据。请参阅,特别是关于的一节
帮助在Python中分发命令行工具。进入点在setup.py
中定义如下:
thingsproject/
README
setup.py
doc/
...
things/
__init__.py
animals.py
vegetables.py
minerals.py
test/
test_animals.py
test_vegetables.py
test_minerals.py
setup(
name='thingsproject',
....
entry_points = {
'console_scripts': ['dog = things.animals:dog_main_function']
},
...
)
其效果是,当使用python setup.py install安装包时,会根据您的操作系统在合理的位置自动创建一个脚本,例如/usr/local/bin
。然后,脚本调用things
包的animals
模块中的dog\u main_函数
另一个要考虑的Python约定是A。这表示一个目录或zip文件中的“main”脚本,其中包含完整的python代码。这是使用命令行参数解析器为代码定义命令行接口的好地方
在中可以找到有关Python打包的混乱世界的最新信息。如果我正确理解了您的问题,只需授予您的脚本执行权限(/x.py
在*NIX系统中)或键入Python x.py
。