Python虚拟环境¶
如果您计划定期在astropy上工作,您应该在python虚拟环境中进行开发。从概念上讲,虚拟环境是您通常使用的python环境的副本,该虚拟环境中包含的正常环境中包含的包的数量尽可能多(或少)。它是从您正常的python环境中进行沙盒化的,在这个意义上,安装在虚拟环境中的包不会以任何方式影响您的正常环境。
备注
“普通python环境”是指您登录时使用的任何python。
使用虚拟环境有两种选择;方法的选择取决于您使用的python发行版:
如果使用anaconda python发行版,则必须使用 conda 创建和管理您的虚拟环境。
如果你使用你使用的任何其他发行版 virtualenvwrapper ;你 不能 使用 conda . 顾名思义, virtualenvwrapper 是包装纸吗 virtualenv .
在这两种情况下,您将经历相同的基本步骤;完成每个步骤的命令都是针对这两种情况给出的 conda 和 virtualenvwrapper :
备注
你 不能 使用 virtualenvwrapper 或 virtualenv 在水蟒体内。
virtualenvwrapper 使用bash和bash like shell;请参见 使用virtualenv 以备选择。
为虚拟环境设置¶
-
首先,安装 virtualenvwrapper ,也将安装 virtualenv 用
pip install virtualenvwrapper
.从 documentation for virtualenvwrapper ,您还需要:
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/ source /usr/local/bin/virtualenvwrapper.sh
conda: 除了安装anaconda python发行版之外,不需要任何设置。
列出虚拟环境¶
在使用虚拟环境之前,您不需要列出已创建的虚拟环境…但迟早您会忘记您定义了哪些环境,这是一种很容易找到答案的方法。
- virtualenvwrapper:
workon
如果没有显示,则表示没有虚拟环境
如果显示
workon: command not found
那你还没做 为虚拟环境设置 ;这样做。有关已安装环境的详细信息,请使用
lsvirtualenv
.
- virtualenvwrapper:
- conda:
conda info -e
你总是至少有一个环境,叫做
root
您的活动环境由
*
- conda:
创建新的虚拟环境¶
这需要为您想要的每个虚拟环境执行一次。在创建虚拟环境时,您需要做出一个重要的选择:您希望在您的虚拟环境中安装在您的普通python环境中的哪个包(如果有的话)?
将它们包含在虚拟环境中并不需要太多额外的空间——它们被链接到虚拟环境中,而不是被复制。在虚拟环境中,您可以安装新版本的包,如Numpy或Astropy,这些版本会覆盖在普通python环境中安装的版本。
开始的最简单方法是在虚拟环境中包含在您的普通python环境中安装的包;下面的说明可以做到这一点。
接下来的一切, ENV
表示为虚拟环境指定的名称。
您选择的名称中不能有空格。
- virtualenvwrapper:
创造一个称为
ENV
在正常python环境中的所有包:mkvirtualenv --system-site-packages ENV
省略选项
--system-site-packages
创建一个没有在常规python环境中安装python包的环境。使用创建的环境 virtualenvwrapper 始终包括 pip 和 setuptools 以便您可以在虚拟环境中安装软件包。
更多细节和示例见 virtualenvwrapper command documentation .
- conda:
创造一个称为
ENV
在你的主要水蟒环境中的所有包:conda create -n ENV anaconda
更多详细信息和示例都不是从普通python环境中的包开始的,请参见 documentation for the conda command 以及 guide on how to manage environments .
下一步激活环境
ENV
使用:conda激活环境
您的命令行提示符将包含
ENV
默认情况下在括号中。如果astropy安装在
ENV
环境中,您可能需要卸载它才能正确安装开发版本。可以使用以下命令执行此操作:conda uninstall astropy
激活虚拟环境¶
要使用新的虚拟环境,您可能需要激活它; virtualenvwrapper 将尝试在创建新环境时自动激活它。激活可以做两件事(您可以手动完成这两件事中的任何一件,尽管这会很不方便):
把
bin
您的前面的虚拟环境的目录$PATH
.将虚拟环境的名称添加到命令提示符中。如果您成功地切换到一个名为
ENV
您的提示应该如下所示:(ENV)[~] $
除了激活新环境之外,下面的命令还允许您在虚拟环境之间切换。
virtualenvwrapper: 激活环境
ENV
用:workon ENV
` conda` :激活环境
ENV
用:conda activate ENV
停用虚拟环境¶
在某些情况下,您可能希望回到正常的python环境。使用以下方法:
- virtualenvwrapper:
deactivate
请注意
virtualenvwrapper 4.1.1
的输出mkvirtualenv
说你应该用source deactivate
;这似乎不起作用。
- virtualenvwrapper:
conda:
conda deactivate
删除虚拟环境¶
两者兼而有之 virtualenvwrapper 和 conda 您只需删除 ENV
都提供了命令,使之更容易些。
virtualenvwrapper:
rmvirtualenv ENV
conda:
conda remove --all -n ENV