V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
miniyao
V2EX  ›  Python

有什么方法可以确认 pip uninstall xxx 是安全的,不会破坏现有的项目及环境 venv?

  •  
  •   miniyao · 314 天前 · 2227 次点击
    这是一个创建于 314 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目的虚拟环境 venv 中有不少是临时安装的无效库 package (当时安装的时候,应该也没有在 requirements.txt 里添加),现在 pip freeze > new_requirements.txt 时,就一股脑全导出来了。

    现在项目打算要升级一下版本,想把 venv 中无效的依赖库 pip uninstall xxx 掉(有些没用的库质量很差,也年久失修,升级新 Python 版本,pip3 安装都要报错),又担心万一哪个库又依赖这个 xxx 库,牵藤绊瓜。

    有什么方法、或工具可以确认 pip uninstall xxx 是安全的吗?
    1 、确认 xxx 依赖库在项目中没有使用,一般就只全局搜索一下 xxx 。(这个方法也不是很保险,万一安装包的名字和 import 的包名不一样,就找不准了)
    2 、确认 xxx 依赖库在 venv 中,没有作为其他库的依赖库。同样也是搜一下,但是有时候会出现重名的情况。比如:搜 appdirs 这个库名的时候,就发行 pip 路径下面有个 appdirs.py ,另外还有一个独立的库也叫这个名字( pip install appdirs )。
    5 条回复    2020-06-02 17:09:31 +08:00
    iyaozhen
        1
    iyaozhen   314 天前   ❤️ 1
    pigar 以及类似的

    只会导出你实际 import 过了的包
    nightwitch
        2
    nightwitch   313 天前
    新建一个最小化的虚拟环境,把项目放进去,开始逐渐装包,直到能跑起来为止。
    miniyao
        3
    miniyao   313 天前 via Android
    @nightwitch 这个方法覆盖面不全。哪些异步线程里的 import 不会在启动时立即加载,检测不到。
    dracher
        4
    dracher   313 天前
    可以切换到依赖管理工具
    https://python-poetry.org/
    可以管理分析依赖
    miniyao
        5
    miniyao   313 天前
    @iyaozhen 用了一下 pigar 分析,还是有不是依赖库分析不出来,漏掉了,不了解 AST 分析为什么不准,特别分析第三方 SDK 里的依赖库,漏了好几个。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1871 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:42 · PVG 23:42 · LAX 08:42 · JFK 11:42
    ♥ Do have faith in what you're doing.