Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在无提升权限的Anaconda下的Windows上设置PYTHONPATH_Python_Windows_Environment Variables_Anaconda_Pythonpath - Fatal编程技术网

在无提升权限的Anaconda下的Windows上设置PYTHONPATH

在无提升权限的Anaconda下的Windows上设置PYTHONPATH,python,windows,environment-variables,anaconda,pythonpath,Python,Windows,Environment Variables,Anaconda,Pythonpath,我有一台Windows 7机器,安装了32位anaconda,是为本地用户安装的。安装工作与预期一样:它允许我从命令行、交换机环境等运行python和pip 我还有一个我在文档中编写的代码库。我想在我的PYTHONPATH中添加一个类似C:\Users\username\Documents\MyLib的条目。这通常不是问题,但我没有这台(已发布的工作)计算机通过Windows UI修改环境变量所需的提升权限 我正在寻找一种设置蟒蛇的方法。我只需要它在anaconda环境中工作(即,我只希望能够使

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

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

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


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

在用于修改用户帐户的“控制面板”窗口中,应该有一个仅为当前用户更改环境变量的选项。它在某些版本的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都使用相同的变量。我更愿意创建一个批处理脚本的快捷方式,该脚本可以按照特定任务所需的方式配置环境。例如:

setx.exe PYTHONPATH "C:\Users\username\Documents\MyLib"
@echo关闭
设置PYTHONPATH=C:\Users\username\Documents\MyLib
C:\Users\username\Documents\MyEnv\Scripts\activate.bat

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

既然您说过,您主要使用Spyder,以下内容可能会有用:

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


我将尝试查看用户帐户,看看会发生什么。谢谢你的提示。就使用批处理脚本而言,我不知道如何让它在任何Python代码执行之前自动运行。“@eryksun
cmd.exe
我误解了你的问题。我主要使用cmd和spyder,但也使用IPython和bash。但是,通过用户帐户设置的解决方案工作得非常好。你能基于这一点写一个答案吗(可能还包括为未来读者编写cmd替代品的信息)?通常我同意你关于设置环境变量的看法,但对于这个特定的实验室机器,所有东西都运行在一个Python 3解释器上。即使我们需要具有不同库配置的环境,也不太可能开始使用Py2。