首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

  •  
  •   Zarten · 37 天前 · 1789 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如:
    项目 A 和项目 B
    项目 A 必须使用 pymysql 2.0 版本
    项目 B 必须使用 pymysql 4.0 版本
    但是这个机器只安装了 pymysql 4.0 版本

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

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

    用了一段, 很多与全局 lib 冲突的优先级 bug 也都及时 fix 了, 还算可以一战的, 非 C 的话跨平台都不耽误
        14
    clericpy958   37 天前
    早些时候还特意写了通过 Python 官网的那个 embed zip 文件做了 Windows 一键分发的轮子, 也就是 "解释器+依赖" 一起打包, 没发现有什么问题
        15
    conn4575   36 天前 via Android
    不知道为啥不能用虚拟环境,我不信你们线上机器就跑一个 python 服务
        16
    widewing   36 天前 via Android
    楼主不会把虚拟环境想象成虚拟机了吧。。
        17
    Fris   36 天前 via iPhone
    把包直接拷贝到项目里,简单粗暴
        18
    liujie333333   36 天前
    为啥不用 virtualenv 呢
        19
    wizardoz   36 天前
    virtualenv
    就算没遇到你这种情况我也要用 virtualenv
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   825 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 22:14 · PVG 06:14 · LAX 15:14 · JFK 18:14
    ♥ Do have faith in what you're doing.