如何在 Windows 中*不*使用 python/anaconda 挤满您的用户文件夹?

问题描述 投票:0回答:2

当我安装Python和Anaconda时,基本路径(我使用的是Windows 7)似乎是C:\Users\Erik。我的用户文件夹最终变得一团糟。我将混乱的内容移到一个文件夹(C:\Python)并重新安装了 Anaconda(在 ProgramData 文件夹中,而不是用户文件夹中),但我仍然得到诸如“.conda”、“.ipython”、“.jupyter”和“ .matplotlib”出现在我的用户文件夹中。我试图避免堵塞用户文件夹,而是希望所有这些内容都转到 C:\Python 文件夹。我是 python(以及 MATLAB 之外的任何编程)的菜鸟,所以也许我不知道查找此类内容的相关术语,但我已经尝试解决这个问题很长时间了,但无济于事.

我能够为 jupyter 生成一个配置文件,让 C:\Python 作为默认工作目录,这是一个开始,但如果我可以保持我的用户目录干净那就更好了(我猜越来越多的配置当我安装更多软件包等时,将会生成文件夹)。感谢您提前的帮助。

python anaconda windows-7
2个回答
0
投票

您可以在 Windows 上使用 mklink 命令在文件夹之间创建虚拟链接来执行此操作。

因此,如果您不想要 C:\Users\Erik.conda,而是想要 C:\Conda iles,请执行以下操作。您可能需要管理员权限才能执行此操作。

mkdir C:\Conda\Files
mklink /d C:\Users\Erik\.conda C:\Conda\Files

这样做的目的是使程序很高兴地认为它正在使用 C:\Users\Erik 文件夹来完成其所有工作,但为了简单起见,文件实际上存储在您选择的文件夹中。

我在我的计算机上运行它,因此用户文件夹只是我的文件,而库等位于易于备份的单个全局文件夹中。无论如何,它们应该是系统级文件,这大大简化了事情。


-1
投票

就我个人而言,我发现使用 Python 内置的虚拟环境比使用 Anaconda 更容易维护。因此,避免使用 Anaconda 的方法之一就是不要使用它。

venv

venv 背后的简单想法是,在 python 项目文件中,您可以创建一个文件夹,其中包含该项目的所有 python 信息和可执行文件。这意味着它实际上会将 python 的文件从系统中安装的位置复制到该文件夹中。

您可以通过执行以下命令创建一个新的 python venv:

python -m venv .venv

它的作用是调用

venv
模块(这就是
-m
的含义),并有效地将 python 安装的内容复制到名为
.venv
的文件夹中。名称
.venv
没有任何特殊之处,它只是文档使用的名称,并且是相当标准的做法。创建此文件夹后,您可以通过调用
activate
文件夹中的
.venv/bin
脚本来激活虚拟环境。有几个不同的“激活”脚本,它们适用于不同的系统(Windows 与 Unix 等...),但既然您说您是 Windows 用户,那么您对 powershell 脚本感兴趣(
activate.ps1
)。只需运行该脚本,您就可以进入 venv,就像 Anaconda 一样。

激活后,您将在控制台提示符开头看到

(.venv)
。现在这意味着您所做的一切现在都将针对该 venv 完成。如果使用
python -m pip install X
安装一个软件包,该软件包将被安装到 venv 中,现在当 venv 处于活动状态时,每次您调用
python
时都可以使用该软件包。

当您完成该 venv 中的工作后,您只需关闭终端/powershell 窗口即可停用 venv。您还可以输入

deactivate
返回正常环境。

策略

对我来说,我只是在我的系统上安装 python,并且只将软件包安装到 venvs 中。这可能会导致占用一些额外的驱动器空间,但这对于大多数人来说通常不是问题。这样做的好处是您永远不必处理安装位置的烦恼。此外,使用默认名称

.venv
,文件通常对文件资源管理器隐藏,这使 GUI 保持美观和干净。

因此,就您而言,每当您安装

matplotlib
(或任何其他与此相关的软件包)时,只需确保在使用
python -m pip install matplotlib
安装之前已激活 venv。每次您返回项目并激活 venv 时,matplotlib 都会在那里。

希望对您有帮助。任何其他问题可能可以通过文档得到解答。

venv 文档https://docs.python.org/3/library/venv.html

© www.soinside.com 2019 - 2024. All rights reserved.