我知道当我在 Linux 上安装 Python 包时,我需要使用 的--user选项pip将包安装在我的主目录中,否则我将需要 root 权限。但是在windows上好像不管我是否使用这个选项,这个包都会一直安装在我的主目录(C:\Users\{username}\...)中,只是具体路径会略有不同。使用该--user选项,软件包将安装到c:\users\{username}\appdata\roaming\python\python37\site-packages,而没有此选项,软件包将安装到c:\users\{username}\appdata\local\programs\python\python37-32\lib\site-packages。
C:\>pip3 install pyyaml
Collecting pyyaml
Using cached https://files.pythonhosted.org/packages/45/19/53c041b8719eaf88ce1cdb51bea1c5a2844433e79c23a2a8aeeaa0e27fd8/PyYAML-5.1.1-cp37-cp37m-win32.whl
Installing collected packages: pyyaml
Successfully installed pyyaml-5.1.1
C:\>pip3 show pyyaml
Name: PyYAML
Version: 5.1.1
Summary: YAML parser and emitter for Python
Home-page: https://github.com/yaml/pyyaml
Author: Kirill Simonov
Author-email: xi@resolvent.net
License: MIT
Location: c:\users\{username}\appdata\local\programs\python\python37-32\lib\site-packages
Requires:
Required-by:
C:\>pip3 uninstall pyyaml
Uninstalling PyYAML-5.1.1:
Would remove:
c:\users\{username}\appdata\local\programs\python\python37-32\lib\site-packages\_yaml.cp37-win32.pyd
c:\users\{username}\appdata\local\programs\python\python37-32\lib\site-packages\pyyaml-5.1.1.dist-info\*
c:\users\{username}\appdata\local\programs\python\python37-32\lib\site-packages\yaml\*
Proceed (y/n)? y
Successfully uninstalled PyYAML-5.1.1
C:\>pip3 install --user pyyaml
Collecting pyyaml
Using cached https://files.pythonhosted.org/packages/45/19/53c041b8719eaf88ce1cdb51bea1c5a2844433e79c23a2a8aeeaa0e27fd8/PyYAML-5.1.1-cp37-cp37m-win32.whl
Installing collected packages: pyyaml
Successfully installed pyyaml-5.1.1
C:\>pip3 show pyyaml
Name: PyYAML
Version: 5.1.1
Summary: YAML parser and emitter for Python
Home-page: https://github.com/yaml/pyyaml
Author: Kirill Simonov
Author-email: xi@resolvent.net
License: MIT
Location: c:\users\{username}\appdata\roaming\python\python37\site-packages
Requires:
Required-by:
Run Code Online (Sandbox Code Playgroud)
所有命令都在普通用户下运行,而不是管理员。
那么--userwindows上pip的选项有什么用呢?--user每次安装软件包时都需要使用选项吗?
Windows Python 安装程序如何使用默认设置(您最有可能使用的)处理安装位置确实令人困惑。
\n\n根据文档,当您运行安装程序并单击“立即安装”时:
\n\n\n\n\n\n
\n- 您不需要成为管理员(除非需要 C 运行时库的系统更新或者您为所有用户安装适用于 Windows 的 Python 启动器)
\n- Python 将被安装到您的用户目录中
\n- 将根据第一页底部的选项安装适用于 Windows 的 Python Launcher。
\n
现在,Python 启动器的选项也被默认选中。这意味着,如果您的用户帐户位于“管理员”组(通常是这样),Python ( python.exe) 将安装在您的%LocalAppData%目录中(正如您所观察到的)。但是,安装程序仍会向您显示 UAC 提示,以确认您具有管理员权限,因为它还想安装 Python 启动器 ( py.exe)。你最终会在你的用户目录中得到一个本地的、“只适合我”的Python安装,尽管出于某种无形的原因,启动器是“为所有用户”安装的。
如果你确实想进行系统范围的Python安装,则需要在安装程序的第一个屏幕上选择“自定义安装”,然后单击“下一步”,并选中“为所有用户安装”\xe2\x80\x94否则不进行检查。安装位置将默认为您的%ProgramFiles%目录,通常是C:\\Program Files.
当您使用 进行用户安装时pip,它会将软件包放入您的%AppData%目录中,该AppData\\Roaming目录位于您的用户配置文件中(正如您也观察到的那样)。这样,当您在域网络上拥有“漫游”帐户时,无论您从网络上的哪台计算机登录,您个人安装的软件包都会跟随您。显然,该计算机必须具有系统范围的 Python “为所有用户”安装 Python解释器\xe2\x80\x94 ,而不是几乎不相关的 Python Launcher。这就是上面描述的默认行为完全零意义的地方,因为当您登录到其他用户的计算机时,您将无法运行在其他用户的配置文件中本地安装的 Python 解释器。
最重要的是,如果您确实使用您的个人资料来“漫游”域网络,所有这些--user包(很可能包含数千个文件)都会减慢登录过程:这些文件中的每一个必须在域存储和本地计算机之间同步。
底线:如果您想正确设置它,请自定义您的安装,以确保它安装在实际上所有用户都可以访问的某个目录中。就我个人而言,我喜欢把它放在 中C:\\programs\\Python,因为这样我就可以为pip install每个人做任何事情,甚至不需要一个提升的提示 \xe2\x80\x94 来写入C:\\Program Files。话又说回来,根据具体情况,要求提高提示可能是明智的。
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |