推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
Zarten
V2EX  ›  Python

在同一台机器上, 2 个 Python 项目需要使用同一个库,但是这 2 个项目使用的同一个库的版本号是不一样的,怎么解决呢?

  •  
  •   Zarten · Jun 13, 2019 · 4749 views
    This topic created in 2701 days ago, the information mentioned may be changed or developed.
    例如:
    项目 A 和项目 B
    项目 A 必须使用 pymysql 2.0 版本
    项目 B 必须使用 pymysql 4.0 版本
    但是这个机器只安装了 pymysql 4.0 版本

    为了使项目 A 和项目 B 同时在这台机器上运行,如何解决?除了使用虚拟环境和 docker 之外,还有什么解决方案吗?
    21 replies  •  2020-09-17 10:01:45 +08:00
    hackcv
    hackcv
    Jun 13, 2019
    1
    放到项目里
    lanshee
    lanshee
    Jun 13, 2019
    2
    同 #1
    leishi1313
    leishi1313
    Jun 13, 2019 via Android
    3
    不知道你不用虚拟环境的需求是什么,但是标准就是用 virtualenv。pyenv 可以给每个目录设置不同版本的 python,也可以达到你想要的,也可以配合 virtualenv 使用。其他就是放到项目里了,但是其实这几种本质上都是一样的
    Zarten
    Zarten
    OP
    Jun 13, 2019
    4
    @leishi1313 @hackcv @lanshee 非常感谢你们
    mixure
    mixure
    Jun 13, 2019
    5
    这要是 `Ruby`, 同包的不同版本可以同时存在一个环境中,用`gem` 引用特定版本 (我是菜鸟一只)
    superalsrk
    superalsrk
    Jun 13, 2019
    6
    virtualenv 必备啊
    zzzmj
    zzzmj
    Jun 13, 2019
    7
    最简单就是 用两个虚拟环境呗,也就花些安装依赖的时间
    janxin
    janxin
    Jun 13, 2019
    8
    虚拟环境了解一下
    classyk
    classyk
    Jun 13, 2019
    9
    python 可以直接拷贝一份。然后带路径运行即可
    ysc3839
    ysc3839
    Jun 13, 2019 via Android❤️1
    10
    virtualenv 或者 pipenv。
    HowieWang
    HowieWang
    Jun 13, 2019 via Android
    11
    虚拟环境挺好的。pipenv
    Cu635
    Cu635
    Jun 13, 2019
    12
    项目 A 怎么这么奇葩?必须用低版本的?
    clericpy958
    clericpy958
    Jun 14, 2019
    13
    既然楼主都提出问题了, 就别劝那些他已经知道的出路了吧

    shiv 和 PEP441 了解一下
    pypi.org/project/shiv/

    用了一段, 很多与全局 lib 冲突的优先级 bug 也都及时 fix 了, 还算可以一战的, 非 C 的话跨平台都不耽误
    clericpy958
    clericpy958
    Jun 14, 2019
    14
    早些时候还特意写了通过 Python 官网的那个 embed zip 文件做了 Windows 一键分发的轮子, 也就是 "解释器+依赖" 一起打包, 没发现有什么问题
    conn4575
    conn4575
    Jun 14, 2019 via Android
    15
    不知道为啥不能用虚拟环境,我不信你们线上机器就跑一个 python 服务
    widewing
    widewing
    Jun 14, 2019 via Android
    16
    楼主不会把虚拟环境想象成虚拟机了吧。。
    Fris
    Fris
    Jun 14, 2019 via iPhone
    17
    把包直接拷贝到项目里,简单粗暴
    JimmyTinsley
    JimmyTinsley
    Jun 14, 2019
    18
    为啥不用 virtualenv 呢
    wizardoz
    wizardoz
    Jun 14, 2019
    19
    virtualenv
    就算没遇到你这种情况我也要用 virtualenv
    1980744819
    1980744819
    Sep 17, 2020
    20
    @leishi1313 不是不同版本的 python,是一个版本的 python,在不同地方 import 不同版本 pytorch
    1980744819
    1980744819
    Sep 17, 2020
    21
    @conn4575 就算是用虚拟环境也只是单个 python 能单独 import 一个版本的 pytorch,这不解决问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2778 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 14:18 · PVG 22:18 · LAX 06:18 · JFK 09:18
    ♥ Do have faith in what you're doing.