在Windows上的Anaconda下设置PYTHONPATH,无需提升特权

Mad*_*ist 4 python windows environment-variables pythonpath anaconda

我有一台Windows 7机器,安装了32位anaconda,供本地用户使用。安装工作按预期进行:它允许我从命令行运行python和pip,切换环境等。

我还有一个我在“我的文档”中编写的代码库。我想补充像一个条目C:\Users\username\Documents\MyLibPYTHONPATH。通常这不是问题,但是我没有这台(工作发行的)计算机通过Windows UI修改环境变量所需的提升特权。

我正在寻找一种设置PYTHONPATH的方法。我只需要它在anaconda环境中工作(即,我只想能够使用该特定的解释器导入我的库)。sys.path.append在我的脚本中使用的解决方案是不可接受的。但是,我sys.path.append可以执行一些脚本,该脚本将在每次运行时自动执行python myscript.py

我怀疑有一种方法可以解决通过Windows UI施加的特权限制,因为运行conda info -a显示Anaconda安装程序能够将项目插入PATH,特别是C:\Users\username\AppData\Local\Continuum\Anaconda3\Library\bin;...

Ery*_*Sun 6

在用于修改用户帐户的控制面板窗口中,应该有一个选项可以仅为当前用户更改环境变量。它在某些版本的 Windows 上坏了,但如果它有效,它是最简单的选择。

如果这不起作用,下一个最简单的选择是在命令提示符中使用 setx.exe。它默认为当前用户。例如:

setx.exe PYTHONPATH "C:\Users\username\Documents\MyLib"
Run Code Online (Sandbox Code Playgroud)

您还可以使用 reg.exe 在注册表中手动设置变量。但与上述选项不同的是,这不会WM_SETTINGCHANGE向顶级窗口广播消息。当 Explorer 看到该消息时,它会从注册表重新加载其环境。没有它,您必须注销并重新登录才能查看更新的环境变量。话虽如此,这是一个使用 reg.exe 的示例命令:

reg.exe add HKCU\Environment /f /v PYTHONPATH /d "C:\Users\username\Documents\MyLib"
Run Code Online (Sandbox Code Playgroud)

我不喜欢永久设置,PYTHONPATH因为每个版本的 Python 都使用相同的变量。我宁愿创建一个批处理脚本的快捷方式,该脚本按照特定任务所需的方式配置环境。例如:

setx.exe PYTHONPATH "C:\Users\username\Documents\MyLib"
Run Code Online (Sandbox Code Playgroud)

创建此批处理脚本的快捷方式。然后右键单击快捷方式并选择“属性”。修改目标运行cmd.exe /k "path\to\the\script.bat"


Imp*_*est 5

如您所言,您主要使用Spyder,以下内容可能会有用:

Spyder提供了通过集成管理器管理PYTHONPATH的选项。

在此处输入图片说明