V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cwjokaka
V2EX  ›  程序员

Linux 下 Python 虚拟环境怎么切换

  •  
  •   cwjokaka ·
    cwjokaka · 2019-06-27 17:46:05 +08:00 · 6128 次点击
    这是一个创建于 2008 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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