为python设置虚拟环境 设置虚拟环境创建您的虚拟环境virtualenvwrapper 总结

如何解决为python设置虚拟环境 设置虚拟环境创建您的虚拟环境virtualenvwrapper 总结

如果我听起来真的很无知,请原谅我,但在技术/IT 方面,我是一个完全的新手。在你的回答中假设我什么都不知道,因为我可能不知道。我昨天学会了使用终端,所以只知道基本命令。我还没有完全适应终端。我使用的命令行程序是 cygwin。在 Windows 10 机器上运行它。我正在使用 python3

我已经完成了 Python 初学者课程,现在想开始构建现实世界的项目。我正在尝试建立一个虚拟环境,以便我可以开始构建一个 python 项目。 I这些是我采取的以下步骤:

  1. 我创建了一个名为 Projects 的项目目录,然后在其中为我的实际项目创建了一个名为 Marketing project 的目录。
/cygdrive/c/Program Files (x86)/Python/python385/Projects/Marketing Project
  1. 我尝试运行 python3 -m venv env 命令来创建一个名为 env 的虚拟环境,但它不起作用。我收到以下错误
$ python3 -m venv env

- bash: /cygdrive/c/Users/44784/AppData/Local/Microsoft/WindowsApps/python3: Permission denied

我该如何解决这个问题,以便这个命令可以工作?

解决方法

如果您使用的是 Python 3 版本,其中包含虚拟环境支持,因此您只需创建一个:

$ python3 -m venv venv

在这里,我要求 Python 运行包 venv 并创建一个名为 venv 的虚拟环境。命令中的第一个 venv 是 Python 虚拟环境包的名称,第二个是您可以用于特定环境的虚拟环境名称。随意将第二个 venv 替换为您要分配给虚拟环境的其他名称。

命令完成后,您将拥有一个名为“venv”的目录,其中存储虚拟环境文件。

如果您使用的 Python 版本早于 3.4(包括 2.7 版本),则本机不支持虚拟环境。对于这些版本的 Python,您需要先下载并安装名为 virtualenv 的第三方工具,然后才能创建虚拟环境。

安装 virtualenv 后,您可以使用以下命令创建虚拟环境:

$ virtualenv venv

无论您使用何种方法创建它,您都应该创建虚拟环境。要激活您全新的虚拟环境,请使用以下命令:

$ source venv/bin/activate

# Output
(venv)$ 

如果您使用的是 Microsoft Windows 命令提示符窗口,则激活命令略有不同:

$ venv\Scripts\activate

创建并激活虚拟环境后,您终于可以安装所有项目包了。

另一种创建和激活虚拟环境的方法

虚拟环境包装器

我还想向您介绍 virtualenvwrapper 的概念。 virtualenvwrapper 是一组扩展,允许创建和删除虚拟环境,并且基本上可以管理您的开发工作流,从而更轻松地一次处理多个项目,而不会在它们的依赖项中引入冲突。>

我将向您展示如何设置您的 Python 环境以在 Ubuntu 20.04 中使用虚拟环境包装器。您需要做的是:

  1. 安装 pip3(如果您还没有安装)
  2. 安装virtualenv
  3. 安装virtualenvwrapper
  4. 编辑 .bashrc/ 文件或 .bash_profile 文件,或同时编辑两者

设置虚拟环境

在您的主目录(或您可以选择的任何其他目录)中打开您的终端。首先,您需要创建一个特殊的目录,该目录将被隐藏,用于存储您所有的虚拟环境

创建一个隐藏的虚拟环境文件夹:

$ mkdir .virtualenv # the dot(.) denotes that the file is hidden

安装pip3

$ sudo apt install python3-pip

确认安装 pip3

$ pip3 --version # checks for the version of pip3
$ which pip3 # shows you the location of pip3 in your system

使用 virtualenv 安装 pip3

$ pip3 install virtualenv # install virtualenv
$ which virtualenv # find where it is located

现在是安装 virtualenvwrapper 的时候了:

$ pip3 install virtualenvwrapper

您将通过添加一行来修改您的 .bashrc 文件,该行将调整每个新的虚拟环境以使用 Python3。您需要将虚拟环境指向您在上面创建的目录(“.virtualenv”)

使用 .bashrc 编辑器打开 vim 文件:

$ vim .bashrc

如果您发现系统中没有 vim,请确保通过以下方式安装:

$ sudo apt install vim

.bashrc 文件将在您的终端中打开。关于 vim 编辑器,您应该注意的一点是它不使用诸如 ctrl + C 等传统编辑命令。相反,它使用自己的特殊命令来允许您与其交互。了解如何在 vim 编辑器 here 中导航。

现在,您需要了解两个基本命令:

  • 如何进入insert模式以便进行编辑
  • 如何save and quit

现在您的编辑器已打开,您需要开始进行更改。按向下箭头键滚动到文件底部。在编辑器的最底部,按键盘上的字母 i 进入插入模式(i 可能表示“插入”)。

添加这些行:

#Virtualenvwrapper settings:
export WORKON_HOME=$HOME/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
. /usr/local/bin/virtualenvwrapper.sh

esc 并输入 :wq,然后按 Enter。这将允许您保存更改并退出编辑器。关闭您的终端并重新打开它。

现在您需要重新加载 bashrc 脚本。有两种方法可以做到:

  1. 关闭并重新打开终端(如上完成)或
  2. 在终端中执行此命令:source ~/.bashrc

您已完成虚拟环境的设置。

创建您的虚拟环境

设置完成后,您可以使用 virtualenvwrapper

virtualenvwrapper 允许您同时创建和激活您的虚拟环境。要创建虚拟环境,请使用命令 mkvirtualenv:

$  mkvirtualenv <name-of-your-virtual-environment> # for example mkvirtualenv marketing_app

# Output
(marketing_app)$ 

要停用您的虚拟环境,请运行:

(marketing_app)$ deactivate

# Output
$ 

virtualenvwrapper 有几个命令可以让您非常轻松地管理您的虚拟环境。示例命令包括:​​

  • mkvirtualenv(同时创建并激活一个新的虚拟环境)
  • workon(用于激活现有的虚拟环境)
  • rmvirtualenv(删除现有的虚拟环境)
  • cpvirtualenv(复制现有的虚拟环境)

virtualenvwrapper 总结

完成初始设置后,您需要做的就是使用上述命令。

要创建一个新的虚拟环境,您只需运行以下命令:

$ mkvirtualenv marketing_app # create and activate virtual environment 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?