鉴于我有一个文件夹'foo',其中有一些.dll文件需要在我的python脚本'setup.py'的运行时在PATH上 是否可以将代码放入我的'setup.py'脚本中,在执行需要运行.dll文件的代码重置之前将'foo'文件夹放在PATH上?
到目前为止,我已经尝试过这个:
import sys
import os
foo = os.path.abspath('dependencies/foo')
if sys.path[1]!= foo:
print('Adding foo to PATH:')
sys.path.insert(1, foo)
print sys.path
else:
print('foo is already on PATH!')
import lib_which_requires_dll_from_foo
...
但它没有效果,虽然sys.path
显示'foo'在PATH上 - 或者我错了,它不应该是它应该在的PATH。
如果我使用set PATH=C:\my_path_to\foo;%PATH%)
编辑:我现在使用的解决方案:
import os
FOO = os.path.abspath('path_to_my/FOO')
os.environ['PATH'] = FOO + ";" + os.environ['PATH']
我删除if条件因为PATH只是暂时改变 - 不是永久性的,所以不需要先检查。
注意:这将仅适用于Windows
仍然欣赏进一步的建议 - 最好是这样可以跨平台工作