在联网的条件下安装Python软件包非常简单,推荐使用Python标准软件包管理工具pip,在Python 2.7.9或者Python 3.4以后已经默认安装pip。
推荐使用Python世界中的瑞士军刀Anaconda,特别是在离线环境中,这是因为其开源个人免费版本中包含了大量的Python软件包,尤其适合进行数据科学和机器学习方面的学习。此外还有JupyterLab交互式的开发环境。
以我目前安装的Anaconda3-2021.05-Windows-x86_64为例,其中包含了362个软件包。
Anaconda下载地址:,包括windows、Mac和Linux版本。
安装了Anaconda之后,就可以使用它的Python环境进行开发,其中最重要的就是:
命令行环境:Anaconda Prompt (Anaconda3),熟悉PowerShell的朋友可以选择Anaconda Powershell Prompt (Anaconda3)Anaconda Navigator (Anaconda3)Jupyter Notebook (Anaconda3)
有了Anaconda之后,如果还需要安装其它Python软件包,那么就可以采用:
pip安装适合在线安装,如果处于离线状态,那么只能使用源代码或者wheel这两种Python软件包安装方式了。
下面,分别说说如何在线和离线安装爬虫和网站自动化测试工具Selenium。
在线安装
在联网条件下,仅需要输入命令:
pip install selenium
但是在离线条件下就需要费点周折了。
离线安装python软件包
类似手机应用商店,可以将pypi看做是Python应用商店
搜索和下载selenium源代码,下载地址:
https://pypi.org/project/selenium/
这里有关于selenium项目的详细信息,包括项目主页、github主页、历史版本、下载链接等。
点击Download files,可以看到下载链接,包括源代码和wheel文件。
源代码安装
解压selenium源代码,可以看到有一个setup.py文件,从命令行进入到这个目录,输入下面的命令
python setup.py install
wheel安装
wheel安装也非常简单,进入whl安装包所在的目录,输入下面的命令
pip install selenium-3.141.0-py2.py3-none-any.whl
解决wheel软件包依赖问题
离线安装Python软件包的时候经常会遇到依赖问题,导致安装失败,例如
pip install selenium-3.141.0-py2.py3-none-any.whl
Processing c:usersjupiterdownloadsselenium-3.141.0-py2.py3-none-any.whl
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /simple/urllib3/
...
ERROR: Could not find a version that satisfies the requirement urllib3 (from selenium) (from versions: none)
ERROR: No matching distribution found for urllib3
这是因为selenium依赖urllib3,它试图自动从网络下载和安装urllib3,但是由于网络不通,导致失败。在离线环境下,我们只能手动下载所有的依赖包。
查看某个wheel安装包的依赖包
我们可以使用pkginfo这个工具查看wheel软件包的依赖
当然首先需要安装pkginfo
pip install pkginfo
pkginfo -f requires_dist selenium-3.141.0-py2.py3-none-any.whl
输出信息为:
requires_dist: ['urllib3']
因此,下载和安装urllib3之后,就可以成功安装selenium。
除了pkginfo以外,推荐pipdeptree,可以以树形显示各个包的依赖信息,前提是需要安装pipdeptree和想要查看的软件包
示例:查看pyvisa这个软件包的依赖项
pipdeptree -p pyvisa
输出
注意:这是在Python3.7下的输出信息
PyVISA==1.11.3
- importlib-metadata [required: Any, installed: 4.6.1]
- typing-extensions [required: >=3.6.4, installed: 3.10.0.0]
- zipp [required: >=0.5, installed: 2.2.0]
- typing-extensions [required: Any, installed: 3.10.0.0]
需要注意的是如果Python版本不同,输出的依赖软件包可能不同,同样是pyvisa这个软件包,在Python3.9下,输出:
PyVISA==1.11.3
- typing-extensions [required: Any, installed: 3.10.0.0]
可以看出Python3.9下,PyVisa只依赖typing-extensions
此外还可以使用Python内置的pip命令查看依赖信息
pip show pyvisa
输出:
Name: PyVISA
Version: 1.11.3
Summary: Python VISA bindings for GPIB, RS232, TCPIP and USB instruments
Home-page: https://github.com/pyvisa/pyvisa
Author: Torsten Bronger, Gregor Thalhammer
Author-email: bronger@physik.rwth-aachen.de
License: MIT License
Location: c:usersjupiterappdatalocalprogramspythonpython39libsite-packages
Requires: typing-extensions
Required-by:
注意第9和10行包含了PyVisa软件包的依赖项和依赖它的软件包
除此以外,也可以从软件包源代码目录中的setup.cfg文件查看依赖项,
setup_requires = setuptools_scm>=3.4.3
install_requires =
typing_extensions
importlib-metadata; python_version<"3.8"
dataclasses; python_version=3.6
platforms = Linux; Windows; Mac
setup_require = setuptools>=42; wheel; setuptools_scm[toml]>=3.4.3
最重要的就是install_requires,描述了安装这个软件包所需要的其它软件包。
importlib-metadata; python_version
限时特惠:本站每日持续更新5-20节内部创业项目课程,一年会员
只需199元,全站资源免费下载点击查看详情
站长微信:
jjs406