首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cwjokaka
V2EX  ›  程序员

Linux 下 Python 虚拟环境怎么切换

  •  
  •   cwjokaka · 210 天前 · 3109 次点击
    这是一个创建于 210 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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