如何从我创建的模块执行python脚本

时间:2013-04-23 13:11:46

标签: python-2.7 module

我编写了一个python27模块并使用python setup.py install安装了它。

该模块的一部分有一个脚本,我在安装之前将其放在模块中的bin文件夹中。我认为该模块已正确安装并正常工作(已添加到站点包和脚本)。我已经构建了一个简单的脚本“test.py”,它只运行函数和模块中的脚本。函数工作正常(预期的输出打印到控制台)但脚本没有。

我在test.py中尝试了from [module_name] import [script_name]但没有用。

如何从命令行在模块的bin中运行脚本?

2 个答案:

答案 0 :(得分:1)

您使用的是distutils还是setuptools

我现在正在测试,如果它是不适应的,那就足够了

scripts=['bin/script_name']

setup()来电

如果你正在使用setuptools,你可以避免在bin /中完成一个脚本并通过添加来定义你的入口点

entry_points={'console_scripts': ['script_name = module_name:main']}

setup()电话中

(假设您在main内有module_name个功能)

你确定bin / script_name被标记为可执行文件吗?

尝试运行脚本时遇到的确切错误是什么?你的setup.py有什么内容?

答案 1 :(得分:0)

请检查已安装的模块是否使用条件来检查全局变量__name__的状态。 我的意思是:

if __name__ == "__main__":

全局变量__name__更改为“__main__”字符串,然后从命令行手动启动脚本(例如python sample.py)。 如果您使用此条件,并将所有代码置于此条件下,那么当您尝试从其他脚本导入已安装的模块时,它将起作用。 例如(模块中的代码将不会运行,何时将导入它):

testImport.py:

import sample
...another code here...

sample.py:

if __name__ == "__main__":
    print "You will never see this message, except of case, when you start this module manually from command line"