在 运行 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)
问题
我有一个在后台运行的 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)