首页 > 解决方案 > 如果没有,请尝试导入,在 python 中安装

问题描述

如果未安装,我正在尝试在 python 中自动安装每个库。

#!/usr/bin/python
# -*- coding: utf-8 -*-

from pip._internal import main
pkgs = ['Bio==0.1.0','argparse==1.4.0']
for package in pkgs:
    try:
        import package
    except ImportError:
        main(['install', package])

但是,会发生此错误:

Collecting Bio==0.1.0
Using cached https://files.pythonhosted.org/packages/14/c2/43663d53b93ef7b4d42cd3550631552887f36db02c0150d803c69ba636a6/bio-0.1.0-py2.py3-none-any.whl 
Installing collected packages: Bio 
Successfully installed Bio-0.1.0 
Collecting argparse==1.4.0   
Using cached https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl 
ERROR: Could not install packages due to an EnvironmentError: [Errno2] No such file or directory: '/tmp/pip-req-tracker-6sqtap8q/139713c65f8ac559a034717470dc5a6e30a6db86bdc3d69fe2bc0e63'

我注意到这总是在第一个库安装后发生,例如:如果我更改['Bio','argparse']['argparse','Bio'], thenargparse将被安装,但Bio不会。

标签: pythonpippython-import

解决方案


不要这样做。

反而:

  • 要么用准确的依赖关系正确地打包你的 Python 项目(查找setuptoolspoetryflit或任何其他类似的项目);

  • 或指示您的用户自己安装项目的依赖项,您可以通过提供pip兼容requirements.txt文件来促进这一点。

此处的附加说明是如何“使用程序中的 pip”


推荐阅读