2

是否可以从一个位置运行 python 脚本,但让脚本像位于其他地方一样执行(因此导入等都按预期工作)。

我的情况是这样的:

  • 应用程序位于 /opt/foo/bin 下,应用程序主入口点是foo.py
  • 下面/opt/foo有一堆包/模块,foo.py然后导入
  • 我们运行应用程序cd /opt/foo/bin && python foo.py

我希望能够复制 foo.py/tmp使用cd /tmp && python foo.py. 我希望它像foo.py生活在/opt/foo/bin. 如果需要,我可以修改foo.py下。/tmp

希望这对某人有意义。修改foo.py下面/opt/foo/bin不是一种选择。一种可能性可能是在/tmpie下创建一个文件夹/tmp/foo并符号链接除此之外的所有内容foo.py- 但我希望有一种更简单的方法来完成我想要的!

4

1 回答 1

6

下面是Python 在导入模块时如何搜索模块的描述。解决问题的一种方法是将目录 /opt/foo/bin 添加到 PYTHONPATH。您还可以修改 foo.py 中的路径以找到模块,例如

 import sys
 sys.path.append('/opt/foo/bin')
 import foo
于 2013-10-09T22:13:30.840 回答