有没有PATH办法使用python以独立于平台的方式修改环境变量?
类似的东西os.path.join()?
我已经阅读了多篇帖子和许多文章,详细说明了cron作业中的scipts需要保持在脚本本身内部运行所必需的环境变量,因为在cron中打开了shell.我的情况是独特的,因为我的路径变量都是按照讨论的方式设置的,这反过来会使用subprocess.call ()成功调用pysaunter python egg ,但它似乎从那里分解.这导致整个过程在cron作业中中断.
为清楚起见,以下是我所指的步骤:
1) cronjob calls run_test.py -n foo
2) run_test.py sets the environment variables correctly
(cur_shell_path=sys.path (converted to proper path string, not shown here)
my_env= os.environ.copy()
my_env["PATH"] = my_env["PATH"] + cur_shell_path)
3) run_test.py calls subprocess.call("pysaunter -m foo -v", env=my_env, shell=True)
Run Code Online (Sandbox Code Playgroud)
步骤3的输出显示它正在找到egg并成功开始从pysaunter加载必要的模块,但是当它试图找到用于修改pysaunter的目录时它会中断.错误如下:
ImportError: no module named helpers
Run Code Online (Sandbox Code Playgroud)
我曾多次尝试将此路径添加到环境中,但它似乎永远不会找到包含helpers.py的目录.pysaunter -m foo -v从交互式shell调用时,该命令正常工作.
我在pysaunter上找不到多少帮助,所以我认为这里过多的pysaunter细节是不必要的.如果您了解更多有关pysaunter的信息,请告知我们您是否需要更多信息.我不知道该分享什么.
我还阅读了很多帖子,讨论了通过编辑.profile/.bash_profile来改变shell默认行为的能力.我试图找到一个可以使我的路径变量全局可访问的地方,但我找不到任何东西.我不确定这是怎么做的,它可以解决我的问题,所以如果你对此有所了解,请告诉我.
最后说明,这是在Mac 10.7.5上运行的.
如何使用C API将特定目录添加到搜索路径?还有一个相关问题:变更是本地应用程序,还是全局搜索路径?
我在Windows和Linux上运行的Pydub模块有问题.当我尝试打开一个mp3文件时:
from pydub import AudioSegment
sound = AudioSegment.from_mp3("test.mp3")
Run Code Online (Sandbox Code Playgroud)
控制台显示下一条消息:
WindowsError:[错误2]系统找不到指定的文件
但是......我把文件(test.mp3)放在脚本相同的文件夹中,名称是正确的.
为什么我有这个问题?(在Linux中,有相同的错误)