相关疑难解决方法(0)

如何在Python中设置环境变量

我需要在python脚本中设置一些环境变量,我希望从python(shell脚本)调用的所有其他脚本都是子进程,以查看环境变量集.该值是一个数字.

如果我这样做os.environ["DEBUSSY"] = 1,它抱怨说1必须是字符串.我也想知道在设置之后如何在python中读取环境变量(在脚本的后面部分).

python environment-variables

564
推荐指数
14
解决办法
63万
查看次数

在python脚本中设置环境变量

我有一个bash脚本,用于设置环境变量并运行命令

LD_LIBRARY_PATH=my_path
sqsub -np $1 /homedir/anotherdir/executable
Run Code Online (Sandbox Code Playgroud)

现在我想使用python而不是bash,因为我想计算一些我传递给命令的参数.

我试过了

putenv("LD_LIBRARY_PATH", "my_path")
Run Code Online (Sandbox Code Playgroud)

call("export LD_LIBRARY_PATH=my_path")
Run Code Online (Sandbox Code Playgroud)

其次是

call("sqsub -np " + var1 + "/homedir/anotherdir/executable")
Run Code Online (Sandbox Code Playgroud)

但是程序总是放弃,因为没有设置LD_LIBRARY_PATH.

我怎样才能解决这个问题?

感谢帮助!

(如果我在调用python脚本之前导出LD_LIBRARY_PATH一切正常,但我希望python确定路径并将环境变量设置为正确的值)

python export

49
推荐指数
3
解决办法
15万
查看次数

在运行时为ctypes更改LD_LIBRARY_PATH

如何在运行时更新此环境变量,以便ctypes可以在任何地方加载库?我尝试了以下,似乎都没有工作.

from ctypes import *
os.environ['LD_LIBRARY_PATH'] = "/home/starlon/Projects/pyCFA635/lib"  
os.putenv('LD_LIBRARY_PATH', "/home/starlon/Projects/pyCFA635/lib")  
lib = CDLL("libevaluator.so")
Run Code Online (Sandbox Code Playgroud)

python ctypes

36
推荐指数
3
解决办法
3万
查看次数

在python中导入之前设置LD_LIBRARY_PATH

Python使用PYTHONPATH环境变量来确定它应该在哪些文件夹中查找模块.您可以通过修改来解决它sys.path,它可以很好地用于纯Python模块.但是当一个模块使用共享对象文件或静态库时,它会在LD_LIBRARY_PATH(在linux上)查找它们,但是根据我所知,这不能轻易改变并且是平台相关的.

这个问题的快速修复当然是设置环境变量或调用脚本LD_LIBRARY_PATH=. ./script.py,但是你必须为你打开的每个新shell再次设置它.此外,.so我的情况下的文件将始终与文件位于同一目录中.py,但很可能会移动到另一个绝对路径,所以我想每次调用脚本时自动设置它们.

如何编辑Python解释器在运行时独立查找库平台的路径?

编辑:

我已经尝试过os.environ['LD_LIBRARY_PATH'] = os.getcwd(),但无济于事.

python import environment-variables sys

34
推荐指数
3
解决办法
5万
查看次数

如何使用Apache和mod_wsgi为django网站单独设置LD_LIBRARY_PATH

我在Apache2上使用mod_wsgi在ubuntu上部署我的Django网站.

在我的Django视图中,我导入了一个需要在LD_LIBRARY_PATH中设置特定路径的模块.

当我在/ etc/apache2/envvars中设置LD_LIBRARY_PATH时:

export LD_LIBRARY_PATH=/home/user/target_libdir:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

有用.

但是,在我的服务器上,我使用独立的wsgi脚本运行多个django网站,每个网站都在独立的VirtualHost条目中.

问题是网站需要使用不同的LD_LIBRARY_PATH版本.

那么,如何为每个django网站单独设置LD_LIBRARY_PATH?

apache django mod-wsgi

10
推荐指数
1
解决办法
3404
查看次数

Python:环境变量未更新

我正在尝试覆盖 Python 中的环境变量。我可以读取该值,然后写入该值并打印更新后的值。但是,如果我检查命令行中的值,它仍然是原始值。这是为什么?

首先,我创建变量

export MYVAR=old_val
Run Code Online (Sandbox Code Playgroud)

我的测试脚本 myvar.py

#!/usr/bin/env python3
import os
print (os.environ['MYVAR'])
os.environ['MYVAR'] = "new_val"
print (os.environ['MYVAR'])
Run Code Online (Sandbox Code Playgroud)

输出

$ ./myvar.py 
old_val
new_val
$ echo $MYVAR
old_val
Run Code Online (Sandbox Code Playgroud)

如您所见,输出的最后一行仍然显示 old_val

python shell environment-variables

3
推荐指数
1
解决办法
1793
查看次数