在 运行 setup.py 之后动态导入存储库

Dynamically importing repository after running setup.py

问题

我有一个在后台运行的 Python 脚本。在某些时候,脚本会尝试导入模块:import mymodule.

在 Python 脚本中执行导入行之前,另一个 bash 脚本(成功)通过 运行 python setup.py install 安装 mymodule

问题是 Python 脚本中的 import mymodule 不工作,因为 mymodule 没有找到,尽管它已经安装了。

我的解决方案

我在安装 mymodule 之前检查了 sys.path,然后我看到添加了一个新行:/usr/lib/python2.7/dist-packages/mymodule-1.0py.egg。因此,在导入模块的行之前,我添加了行 sys.path.append("/usr/lib/python2.7/dist-packages/mymodule-1.0py.egg").

我的问题是是否有更好、更少硬编码的方法来解决这个问题。

您必须刷新 sys.path 但你可以使用 site.py 来做到这一点。

import site 
reload(site)