我编写了一个python27模块并使用python setup.py install
安装了它。
该模块的一部分有一个脚本,我在安装之前将其放在模块中的bin文件夹中。我认为该模块已正确安装并正常工作(已添加到站点包和脚本)。我已经构建了一个简单的脚本“test.py”,它只运行函数和模块中的脚本。函数工作正常(预期的输出打印到控制台)但脚本没有。
我在test.py中尝试了from [module_name] import [script_name]
但没有用。
如何从命令行在模块的bin中运行脚本?
答案 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"