当模块不在我的 Python 路径中时,如何在模块内运行脚本?
考虑一些假想的包:
package/
__init__.py
main.py
helper/
__init__.py
script.py
other/
__init__.py
anotherscript.py
Run Code Online (Sandbox Code Playgroud)
说我们想跑script.py。当包在我的 Python 路径中时,这会完成这项工作:
python -m package.helper.script
Run Code Online (Sandbox Code Playgroud)
但如果不是这样呢?有没有办法告诉python模块的位置?就像是
python -m /path_to_my_package/package.helper.script
Run Code Online (Sandbox Code Playgroud)
(显然,以上不起作用)
编辑:
(1) 我正在寻找不涉及环境变量的解决方案。
(2)script.py包含相对导入,所以全路径script.py并不能解决问题。
And*_*kov -1
你的 script.py 应该是这样的:
#!/usr/bin/python
#here your python code
if __name__ == "__main__":
#run you helper
Run Code Online (Sandbox Code Playgroud)
然后使您的脚本可执行:chmod +x script.py.
从控制台运行 ./path_to_my_package/package/helper/script.py 。
| 归档时间: |
|
| 查看次数: |
5691 次 |
| 最近记录: |