• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cwjokaka
V2EX  ›  程序员

Linux 下 Python 虚拟环境怎么切换

  •  
  •   cwjokaka ·
    cwjokaka · Jun 27, 2019 · 7117 views
    This topic created in 2695 days ago, the information mentioned may be changed or developed.

    系统的 python 版本为 2.7。 工程自带的虚拟环境为 3.7。 在工程根目录下执行 source venv/Scripts/activate 进入虚拟环境后,执行 python 进入编辑模式,发现所在版本仍然是系统的 2.7。有没有人知道这是什么肥四

    33 replies  •  2019-06-29 15:37:28 +08:00
    wlzd
    wlzd
    Jun 27, 2019 via Android
    1
    你这不对吧,建议导出 requirment.txt,用系统自带的 python3 安装或者使用 miniconda 创建需要的 Python 版本
    encro
    encro
    Jun 27, 2019
    2
    deactive
    JsonLee
    JsonLee
    Jun 27, 2019 via iPhone
    3
    用 which 看一下 python 的路径是不是 venv 中的,如果是,那就是你创建 venv 的时候使用 python2 创建的了,改成 python3 -m virtualenv venv 来创建试试。
    ysc3839
    ysc3839
    Jun 27, 2019 via Android
    4
    virtualenv 创建的时候脚本中会写死绝对路径的,你这里说“工程自带的虚拟环境”大概是从别的地方拷过来的?那是用不了的。建议使用 pipenv
    rookiebulls
    rookiebulls
    Jun 27, 2019 via iPhone
    5
    Linux 下不应该是 bin 吗,windows 才 script
    imkuang
    imkuang
    Jun 27, 2019
    6
    建议用 conda,创建的虚拟环境直接带自己的 python 解释器,想用哪个版本用哪个版本,完全不用管系统带的 python 环境是啥
    Ct5T66PVR1bW7b2z
    Ct5T66PVR1bW7b2z
    Jun 27, 2019
    7
    使用 pyenv 更简单: https://www.abbeyok.com/archives/352
    mantou99
    mantou99
    Jun 27, 2019
    8
    workon 可以切换
    Trim21
    Trim21
    Jun 27, 2019 via Android
    9
    Linux 下面应该是 venv/bin/ac*才对吧
    bmos
    bmos
    Jun 27, 2019
    10
    今天刚刚重命名了一个文件夹,发现 source 之后环境就不生效了,全部重新弄了一遍.
    676529483
    676529483
    Jun 27, 2019
    11
    虚拟环境又不是分发包,指向仍然是系统安装的 python。虚拟环境的目的是隔离不同包版本,不是分发应用用的。建议安装 py3 后重建虚拟环境
    chinesestudio
    chinesestudio
    Jun 27, 2019 via Android
    12
    安装 python3 然后 ls 搞定 几行代码
    cwjokaka
    cwjokaka
    OP
    Jun 27, 2019
    13
    @ysc3839
    @Abbeyok
    @676529483
    我遇到的大概是你们所说的这种情况了,pipenv 是否就可以解决这个问题了
    polebug
    polebug
    Jun 28, 2019 via Android
    14
    docker 或
    虚拟机(vargant) + conda
    ysc3839
    ysc3839
    Jun 28, 2019 via Android
    15
    @cwjokaka pipenv 能解决项目依赖管理,可以自动创建一个 virtualenv 然后安装依赖项目。但是不能实现打包整个 Python 环境然后跨系统使用。
    gtlions
    gtlions
    Jun 28, 2019 via iPhone
    16
    pyenv 了解下
    xiaket
    xiaket
    Jun 28, 2019
    17
    我觉得这根本不是 Python 的问题, 而是你不太熟悉 Linux 的问题...
    LokiSharp
    LokiSharp
    Jun 28, 2019 via iPhone
    18
    pipenv
    skymei
    skymei
    Jun 28, 2019
    19
    你都没有进入虚拟环境吧
    TrickWu
    TrickWu
    Jun 28, 2019
    20
    我盲猜你是直接把 windows 下的 env 直接拷贝到了 linux 下使用
    cwjokaka
    cwjokaka
    OP
    Jun 28, 2019
    21
    @TrickWu 对,整个项目连同 venv 给拷了
    40huo
    40huo
    Jun 28, 2019 via Android
    22
    @cwjokaka 直接拷过去可能会出现路径错误的问题,看看 activate 脚本
    TrickWu
    TrickWu
    Jun 28, 2019
    23
    @cwjokaka 这样不行的,你在 linux 得重新创建一个新的 env,跟 win 下不一样的
    cwjokaka
    cwjokaka
    OP
    Jun 28, 2019
    24
    @TrickWu 工作上的需要,要求开发好的项目可以在别的无环境系统上顺利运行
    glasslion
    glasslion
    Jun 28, 2019
    25
    @cwjokaka 哪有那么麻烦,把 activate 里的绝对路径改成相对路径就行了
    happyhou
    happyhou
    Jun 28, 2019
    26
    conda
    Huelse
    Huelse
    Jun 28, 2019
    27
    pyenv 挺好用的
    podel
    podel
    Jun 28, 2019
    28
    miniconda 超级好用。
    brucedone
    brucedone
    Jun 28, 2019
    29
    mini conda 爽一把
    julyclyde
    julyclyde
    Jun 28, 2019
    30
    执行 python 就是进入 2.7
    因为 python3 叫 python3
    hushao
    hushao
    Jun 28, 2019
    31
    pyenv+pipenv 挺好用的,就是 lock 文件的时候贼慢,最近直接用 docker 了
    wwwn
    wwwn
    Jun 28, 2019
    32
    pyenv+pipenv +1,急性子更适合 pyenv,一般够用了
    szkoda
    szkoda
    Jun 29, 2019
    33
    conda
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   996 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 22:13 · PVG 06:13 · LAX 14:13 · JFK 17:13
    ♥ Do have faith in what you're doing.