在Anaconda下设置Python的PYTHONPATH以避免需要提升权限的情况(不包括特殊字符或引号)

2024-05-14 00:57:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我还有一个我在文档中编写的代码库。我想在我的PYTHONPATH中添加一个类似C:\Users\username\Documents\MyLib的条目。这通常不是问题,但我没有此(工作颁发)计算机通过Windows UI修改环境变量所需的提升权限。

我在找一种方法来设置Python。我只需要它在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;...


Tags: path方法命令行脚本机器ui环境windows
2条回答

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

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

setx.exe PYTHONPATH "C:\Users\username\Documents\MyLib"

也可以使用reg.exe在注册表中手动设置变量。但与上述选项不同,这不会向顶级窗口广播WM_SETTINGCHANGE消息。当资源管理器看到该消息时,它会从注册表重新加载其环境。如果没有它,则必须注销并重新登录才能看到更新的环境变量。也就是说,下面是一个使用reg.exe的命令示例:

reg.exe add HKCU\Environment /f /v PYTHONPATH /d "C:\Users\username\Documents\MyLib"

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

@echo off
set PYTHONPATH=C:\Users\username\Documents\MyLib
C:\Users\username\Documents\MyEnv\Scripts\activate.bat

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

既然你说你主要使用Spyder,那么下面的内容可能会有用:

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

enter image description here

相关问题 更多 >