在创建一些编程项目时,由于使用不同的工具可能对Python版本及其他软件包有不同的要求,这个时候需要创建不同的虚拟环境以避免将所有的软件包都放在一块而引起冲突。通常一个项目对应一个虚拟环境。
这里记一些有关命令行与虚拟环境的基本操作。
1. 查看系统中有多少虚拟环境:
conda env list
或
conda info --envs
2. 创建虚拟环境
(1)使用conda创建虚拟环境:
conda create --name myenv
这里将创建一个名为myenv的虚拟环境。
(2)使用Python自带的venv创建虚拟环境:
python -m venv myenv
这将在当前目录下创建一个名为myenv的新虚拟环境。
(3)在创建虚拟环境时可通过指定Python版本、安装包等参数来对虚拟环境进行配置。
例如,使用conda创建指定Python版本的虚拟环境:
conda create --name myenv python=3.8
3. 激活虚拟环境
conda activate myenv
或
source myenv/bin/activate
使用的虚拟环境工具不同,激活虚拟环境的方式也会有所不同。
4. 退出当前虚拟环境
(1)使用conda退出当前虚拟环境
conda deactivate
(2)使用venv退出虚拟环境
deactivate
5. 删除虚拟环境
(1)使用conda删除虚拟环境
conda remove --name myenv --all
这将删除名为myenv的虚拟环境及其所有安装的包。
(2)使用python自带的venv删除虚拟环境:
rm -rf myenv
这将删除名为myenv的虚拟环境及其所有文件。
~~ ~~ ~~
另外,我的系统里有base和llama_factory两个虚拟环境,我发现在这两个虚拟环境中都可以通过neo4j start启动neo4j。问了一下ChatGPT,可能的原因如下:
- 环境变量配置:Neo4j的启动命令可能会通过系统的环境变量来查找Neo4j的安装目录。如果在系统中配置了Neo4j的安装目录到系统的环境变量中,那么不同的虚拟环境中都可以访问到这个配置,从而可以启动Neo4j。
- 共享Neo4j安装目录:有可能在两个虚拟环境中都使用了同一个Neo4j的安装目录,这样无论在哪个虚拟环境中执行neo4j
start命令,都会启动同一个Neo4j实例。 - 虚拟环境配置:有些软件在安装过程中会将执行命令的路径添加到系统的PATH变量中,这样无论在哪个虚拟环境中执行命令,系统都能找到对应的可执行文件。
要确保不同的虚拟环境彼此隔离,你可以检查每个虚拟环境中的PATH和环境变量配置,以确保它们互相独立。