update user installed packages with pip
我使用大量的python包进行研究,我使用pip的
我尝试了推荐的版本
有没有办法只升级本地为我的用户安装的软件包?
我也遇到了这个问题,创建了下面的脚本。该脚本将更新pip找到的并位于用户主目录中的所有包。通常,这应该是与
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #!/usr/bin/env python # Starting point for this script: # http://stackoverflow.com/a/5839291 import os import pip import subprocess homedir = os.getenv('HOME') homepkg = [] for dist in pip.get_installed_distributions(): if not dist.location.startswith(homedir): continue homepkg.append(dist.project_name) if len(homepkg) == 0: print('No locally-installed packages, nothing to update.') raise SystemExit # --no-deps is required because --upgrade by default is recursive and would try # to update packages that are not from homedir (e.g. from /usr). subprocess.call(['pip', 'install', '--user', '--upgrade', '--no-deps'] + homepkg) |
您可以使用这个简单的命令行一行程序升级用户安装的包:
1 | pip freeze --user | cut -d'=' -f1 | xargs pip install --user -U |
如果可能的话,我建议您创建虚拟环境。
您只需使用
它所做的是创建几乎完整的python副本(一些库只是链接以节省空间),激活后所做的一切只影响该副本,而不是全局环境。因此,您可以使用PIP安装任何库集,更新它们等,并且不会在虚拟环境之外更改任何内容。但在你做任何事情之前不要忘记先激活它。