python - 如何使用 Python 将文件夹放在 PATH 上?

标签 python dll path os.path

鉴于我有一个文件夹“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%) 将“foo”放在 PATH 上,我的 setup.py 脚本就可以运行

最佳答案

import os
FOO = os.path.abspath('path_to_my/FOO')
os.environ['PATH'] = FOO + ";" + os.environ['PATH']

我删除了 if 条件,因为 PATH 只是临时更改 - 不是永久更改,因此不需要先检查它。

注意:这仅适用于 Windows。


此答案发布为 edit问题How to put a folder on PATH with Python?通过 OP Wlad在 CC BY-SA 3.0 下。

关于python - 如何使用 Python 将文件夹放在 PATH 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239544/

相关文章:

java运行时出现java.lang.UnsatisfiedLinkError : no lwjgl in java. libary.path

c# - 访问路径 C :\is denied

python - 如何使用 Pymunk 类别和蒙版

python - 指定和不指定 dtype 的 numpy.array 行为很奇怪

c++ - Windows Hook 和 DLL 加载

c# - PinvokeStackImbalance 错误 (C#)

path - MATLAB:将当前文件夹设置为脚本位置

python - 比较没有关键重要性的字典的嵌套值

python - flask-bootstrap 在一页中有两种形式

c++ - 如果 exe 静态链接到不同的 msvcr,导入的 DLL 函数是否会调用错误的函数版本?