【问题标题】:How to create virtual env with python3如何使用 python3 创建虚拟环境
【发布时间】:2017-08-21 12:58:06
【问题描述】:

我正在使用 python 2.7 + virtualenv 版本 1.10.1 来运行 myproject 项目。由于一些其他项目的要求,我必须使用其他版本的 python(Python 3.5) 和 Django 1.9。为此,我在我的用户目录中安装了 python。此外,我已将 virtualenv(version - 15.1.0) 下载并安装到我的用户目录中。 但是每当我尝试创建虚拟环境时,我都会收到以下错误

python virtualenv/virtualenv.py myproject

Using base prefix '/home/myuser/python3'
New python executable in /home/mount/myuser/project_python3/myproject/bin/python
ERROR: The executable /home/mount/myuser/project_python3/myproject/bin/python is not functioning
ERROR: It thinks sys.prefix is '/home/myuser/python3' (should be '/home/mount/myuser/project_python3/myproject')
ERROR: virtualenv is not compatible with this system or executable

谁能告诉我我做错了什么

【问题讨论】:

  • 运行python virtualenv/virtualenv.py myproject时,不清楚你使用的是哪个Python。 python 这里是你的系统 Python (2.7) 还是你本地的 Python (3.5)?
  • 您是否使用了正确的 pip(即 pip3)来安装 virtualenv 版本 - 15.1.0?
  • 我总是觉得these docs 很有帮助。
  • @Chris 我正在使用 python3.5
  • @PM2Ring 我使用了命令 python -m pip

标签: python django python-3.x virtualenv


【解决方案1】:

在 Python 3.6+ 中,不推荐使用 pyvenv 模块。请改用以下单行:

python3 -m venv <myenvname>

这是 Python 社区创建虚拟环境的recommended way

【讨论】:

    【解决方案2】:

    创建虚拟环境

    virtualenv -p python3 venv_name 
    

    这将在 baseDirectory/bin/python3 中创建新的 python 可执行文件

    如何激活新创建的 Venv:

    cd baseDirectory/bin/  
    
    source activate  
    

    停用新的 venv

    deactivate 
    

    UPDATE_1

    此方法已折旧为The use of venv is now recommended for creating virtual environments。 请查看this 链接以获取最新答案

    【讨论】:

    • 值得记住的是人们在下面所说的:从 Python 3.3 版开始,不需要安装和使用virtualenv,因为venv 作为嵌入式模块存在。顺便提一句。为source venv/bin/activate 创建别名比 cd 并激活它要高效得多。
    【解决方案3】:

    自 3.3 版以来,Python 已经附带了名为 venv 的内置“virtualenv”。您不再需要为 Python 3.3+ 安装或下载 virtualenv 脚本。

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

    检查您的安装是否提供了应该负责创建“virtualenv”的pyvenv 命令。参数类似于经典的 virtualenv 项目。

    $ pyvenv --help
    usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
                [--upgrade] [--without-pip]
                ENV_DIR [ENV_DIR ...]
    
    Creates virtual Python environments in one or more target directories.
    
    positional arguments:
      ENV_DIR               A directory to create the environment in.
    
    optional arguments:
      -h, --help            show this help message and exit
      --system-site-packages
                            Give the virtual environment access to the system
                            site-packages dir.
      --symlinks            Try to use symlinks rather than copies, when symlinks
                            are not the default for the platform.
      --copies              Try to use copies rather than symlinks, even when
                            symlinks are the default for the platform.
      --clear               Delete the contents of the environment directory if it
                            already exists, before environment creation.
      --upgrade             Upgrade the environment directory to use this version
                            of Python, assuming Python has been upgraded in-place.
      --without-pip         Skips installing or upgrading pip in the virtual
                            environment (pip is bootstrapped by default)
    
    Once an environment has been created, you may wish to activate it, e.g. by
    sourcing an activate script in its bin directory.
    

    【讨论】:

    • 此脚本在 Python 3.6+ 中已弃用,尽管该模块仍然存在。推荐使用:python3 -m venv &lt;myenvname&gt;
    • @user73657 我正在使用 python 3.5 。但是,如果我运行命令 pyenv 它的说命令未找到
    • @user73657 pyenv 在 3.5.3 中不可用
    • @Anish,脚本不是pyenv,而是pyvenv
    • 太好了,@Anish!请记得accept 解答您的问题。
    【解决方案4】:

    自 Python 3.3 版推出以来,由于 Python 内置了 virtualenv 包,因此无需单独下载。

    请参阅documentation 以获得完整的见解。

    测试virtualenv的安装:

    $ virtualenv --version 
    

    用法:

    1.创建虚拟环境:
    $ virtualenv --system-site-packages -p python3 ./virtual_env_name

    2.要启用它,请使用以下命令:
    $ source ./virtual_env_name/bin/activate

    3.关于禁用虚拟环境并重新使用本地环境:
    $停用

    要列出虚拟环境中的包,请使用 以下命令:
    $ pip3 列表

    【讨论】:

      【解决方案5】:

      virtualenv 是 Python 2 的首选工具,而 venv 在 Python 3 中处理任务。

      不过,您可以使用其中任何一个为 Python 3 创建虚拟环境。

      使用venv

      python3 -m venv virtualenvname

      命令语法:

      /path/to/python3 -m venv /path/to/directory/virtual_env_name

      使用virtualenv

      virtualenv -p python3 virtualenvname

      命令语法:

      virtualenv -p /path/to/python3 /path/to/directory/virtual_env_name

      激活虚拟环境

      在 Linux、Unix 或 MacOS 上,使用终端或 bash shell:

      source /path/to/venv/bin/activate

      例如source virtualenvname/bin/activate

      在 Unix 或 MacOS 上,使用 csh shell:

      source /path/to/venv/bin/activate.csh

      在 Unix 或 MacOS 上,使用 fish shell:

      source /path/to/venv/bin/activate.fish

      在 Windows 上使用命令提示符:

      path\to\venv\Scripts\activate.bat

      在使用 PowerShell 的 Windows 上:

      path\to\venv\Scripts\Activate.ps1

      停用虚拟环境

      在 Linux、Unix 或 MacOS 上,使用终端或 bash shell:

      deactivate

      在 Windows 上使用命令提示符:

      path\to\venv\Scripts\deactivate.bat

      在使用 PowerShell 的 Windows 上:

      deactivate

      此答案适用于可能使用不同操作系统的人。

      【讨论】:

        【解决方案6】:

        我使用命令安装它(对于 Python 3.x),

        $ python3 -m venv env
        

        【讨论】:

          【解决方案7】:

          在python3中创建虚拟环境:

          virtualenv -p /usr/bin/python3 virtualenvname

          创建虚拟环境后,我们需要使用以下命令激活它:

          source virtualenvname/bin/activate

          使用以下命令停用:

          deactivate

          【讨论】:

            【解决方案8】:

            如果你在 Windows 上。

            1. official site手动下载安装你想要的python版本

            2. 安装后,搜索“python”找到文件夹,这样就可以识别路径了

            3. 获取.exe的路径(例如:C:\Users\Path\Programs\Python\Python38\python.exe)

            4. 在要创建环境的文件夹中...启动 bash 或 VSCode 终端,或任何命令提示符,输入 [python .exe path] -m venv [env name] 之类的这个:

              C:/Users/Path/Programs/Python/Python38/python.exe -m venv myenv

            5. (请注意,您必须在步骤 4 中将路径的正斜杠更改为反斜杠)

            6. 像这样激活环境:

              source myenv/Scripts/activate

            【讨论】:

              【解决方案9】:

              在 virtualenv 之上安装 virtualenvwrapper 以简化事情。 按照博客简单的步骤安装:virtualenvwrapper

              创建步骤:

              1. mkvirtualenv -p /usr/bin/python3
              2. 使用 - pip install package_name 安装包
              3. workon - 激活 virtualenv,deactivate - 停用 viirtualenv

              【讨论】:

              • 如果virtualenv 本身不起作用,在virtualenv 周围添加包装器将如何提供帮助?
              • 这是一个重复的答案。这也是一个错误的答案。 virtualenv 已弃用,这是 virtualenv 的包装器
              猜你喜欢
              • 2016-11-12
              • 2017-10-24
              • 2021-07-30
              • 2023-04-07
              • 1970-01-01
              • 2017-10-20
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多