安装 LD_LIBRARY_PATH 在进口B之前 python
Python 使用环境变量
, 确定哪些文件夹应搜索模块。
你可以和他一起玩 , 改变
, 对于纯Python模块,适用于什么。
但是当模块使用常见的对象文件或静态库时,它正在寻找它们
/在 linux/, 但它不能像我所知道的那样容易改变并且取决于平台。
快速解决这个问题 , 当然,它是建立一个环境变量或称之为类似的脚本
, 但是,您将不得不为每个新的安装它 shell, 你打开了。
另外,文件
在我的情况下,将始终处于与文件的同一目录中
, 但可能会被移动到另一条绝对路径,所以每次调用脚本时都希望自动安装它们。
如何编辑翻译的路径 Python 寻找平台库 - 无论执行时间如何?
EDIT:
我已经尝试过了
, 但无济于事。
PYTHONPATH
, 确定哪些文件夹应搜索模块。
你可以和他一起玩 , 改变
sys.path
, 对于纯Python模块,适用于什么。
但是当模块使用常见的对象文件或静态库时,它正在寻找它们
LD_LIBRARY_PATH
/在 linux/, 但它不能像我所知道的那样容易改变并且取决于平台。
快速解决这个问题 , 当然,它是建立一个环境变量或称之为类似的脚本
LD_LIBRARY_PATH=. ./script.py
, 但是,您将不得不为每个新的安装它 shell, 你打开了。
另外,文件
.so
在我的情况下,将始终处于与文件的同一目录中
.py
, 但可能会被移动到另一条绝对路径,所以每次调用脚本时都希望自动安装它们。
如何编辑翻译的路径 Python 寻找平台库 - 无论执行时间如何?
EDIT:
我已经尝试过了
os.environ['LD_LIBRARY_PATH'] = os.getcwd//
, 但无济于事。
没有找到相关结果
已邀请:
4 个回复
涵秋
赞同来自:
在这种情况下,环境变量
仅在当前进程时安装。
EDIT:
似乎您在开始之前需要安装 Python:
https://coderoad.ru/856116/
因此,我建议使用包装脚本
/或者
, 如果你是不是/. 另外,如图所示 @chepner, 您可以考虑安装文件。
标准位置 /内 virtualenv/.
另见一节
https://coderoad.ru/6543847/
奔跑吧少年
赞同来自:
所以它如何工作:
没有 shebang 当前的 shell 将文件作为脚本进行处理 shell,
"exec" 它确保第一个字符串也是此文件中的最后一个命令。 shell,
"env" 例如,在此用于安装任何环境变量 LD_LIBRARY_PATH,
准确的解释员方式 Python 可以指定或 "env" 可以找到它 PATH,
"-x" - 这是一个选择 Python, 它使第一行被解释器忽略 Python,
"$0" - 这是脚本的名称, "$@" 替换为位置参数。
喜特乐
赞同来自:
os.environ[‘LD_LIBRARY_PATH’]
或者
os.environ[‘PATH’]
, 它将父进程环境中的字典中的值复制,如规则, bash /中等的 bash 过程 get 转移到子进程运行实例 python/.
您可以通过命令输出查看可变环境的此部分。
的 bash.
你也可以看到/阅读这些env数据
, 通过输入无限循环/
/ 更改任何环境变量后。
如果你看到/读取该变量的此值/数据是
在脚本内更改它后 python, 虽然脚本,您会看到真实变量的数据不会改变 python 显示修改后的字典键值更新。
更改变量时实际发生了什么 env 在脚本里面 python , 在脚本中
os.environ['LD_LIBRARY_PATH']='/<new_location>'
, 因此,这是它只需更新本地字典中的值与变量部分未进行更新。 env 过程。 因此,它不会完全倒回到目前的过程中,因为
ONLY 本地词典
曾是 modified/updated/populated.
因此,如果我们希望反映新的环境变量,我们必须使用新的数据变量数据覆盖流程内存的过程
.
例子
:
局限性
: 完美 python 不应允许此类变量修改
.
但由于没有常量类型的字典数据,因此它允许您更改数据变量。 改变值绝对没有意义,因为它没有任何有用的反射在运行过程的真实环境中,除非它被使用
.
</new_location></new_location></pid></pid>
喜特乐
赞同来自:
代码必须在适当的地方接受....
os.execv/sys.argv[0], sys.argv/