推荐学习书目
› 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
1980744819
V2EX  ›  Python

同一个项目不同模块需要使用不同版本的三方库,如何解决

  •  
  •   1980744819 · Sep 16, 2020 · 4455 views
    This topic created in 2244 days ago, the information mentioned may be changed or developed.

    一个 tornado 中不同接口需要使用不同版本的 pytorch,并且互不兼容。 请问,如何保持在一个项目内使用不同版本的库呢,有什么比较好的解决方案? (最坏的情况只能把两个接口分开,但这种方式带来维护的难度,以及分散精力)

    Supplement 1  ·  Sep 17, 2020
    一个版本的 python,在不同地方 import 不同版本 pytorch
    不是虚拟环境能解决的,因为虚拟环境需要切换,相当于运行多次
    而我的需求是同时运行一次,在不同的地方使用不同的 pytorch 版本
    10 replies  •  2020-09-18 15:34:34 +08:00
    reus
    reus
    Sep 16, 2020 via Android❤️1
    1
    go 在这方面就解决得好,不兼容的,就是不同的包,互不影响。最近有人质疑这种做法,想必是没遇到楼主这种情况。
    loonghk
    loonghk
    Sep 16, 2020
    2
    Leigg
    Leigg
    Sep 16, 2020 via Android
    3
    放一起就不增加难度?
    iConnect
    iConnect
    Sep 16, 2020 via Android
    4
    只能把 tornado 分开启动 env 了
    neoblackcap
    neoblackcap
    Sep 16, 2020
    5
    1. 改成 RPC,微服务改造
    2. 修改代码,改成一样的版本
    black11black
    black11black
    Sep 16, 2020
    6
    @reus 我觉得总体上弊大于利,允许这种行为实际上安全性和管理难度都增大
    lynn0977
    lynn0977
    Sep 17, 2020 via Android
    7
    放到项目路径中把包重命名
    yunser
    yunser
    Sep 17, 2020 via iPhone
    8
    fork 一下,改一下名,自己发布到 npm
    0bit
    0bit
    Sep 18, 2020
    9
    拆项目
    kailyn
    kailyn
    Sep 18, 2020
    10
    把其中一个版本的代码 clone 下来,放到项目目录中,import 的时候取个别名。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1199 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 16:08 · PVG 00:08 · LAX 08:08 · JFK 11:08
    ♥ Do have faith in what you're doing.