为了避免总是被初学者问相同的问题,我总结了一些在公众号粉丝群里面被问得比较多的问题。
请参阅Python 初学者常见错误——我有 Anaconda 了,还能单独安装 Python 吗?
如果你所有项目都使用系统环境的 Python,那么如果不同项目依赖同一个第三方库的不同版本,并且不同版本的语法还不一样,你就傻了。Redis-py 就因为升级修改了Hash 的hset
方法的参数格式,导致很多人的代码运行出现了问题。
使用 pipenv。它能帮你完成复杂的一切。
python3 -m pip install pipenv
mkdir example_project
cd example_project
pipenv shell
Pipfile
文件,用记事本或者 vim 打开它,修改url =
后面的网址,改为:url = "https://mirrors.163.com/pypi/simple/"
如图1所示。(如果你不在大陆,可以跳过这步)pipenv install xxx
例如:pipenv install requests
图1:使用网易源提高下载速度
以上就是全部操作步骤了。pipenv 会自动帮你创建虚拟环境,并帮你管理第三方库。如果使用 PyCharm,那么当你用 PyCharm 打开这个文件夹的时候,它会自动识别这个虚拟环境。
如果你是使用命令行来运行代码,那么每次打开一个新的终端窗口并进入这个项目文件夹,只需要首先执行一次命令:pipenv shell
,然后自动激活了虚拟环境。此时当你执行python3 xxx.py
时,自动使用这个虚拟环境的 Python。
作为一个初学者,你不需要知道 pipenv 创建的虚拟环境在哪里。更不应该把虚拟环境复制到服务器上。在绝大多数情况下,这样做的人是傻子,除非你部署代码的服务器不支持外网访问又没有配置私有的 Pypi 源(这种情况下,你不是傻子,你老板是)。
正确的做法,是在服务器上重新安装这个项目需要的依赖。
pipenv 已经帮你把项目依赖的第三方库记录在你 Pipfile 文件中了。而版本号记录到了Pipfile.lock 文件中。你部署项目代码的时候,把这两个文件跟项目代码一起放到服务器上面。
然后进入项目文件夹下面,执行如下两行命令:
pipenv install
pipenv shell
注意,pipenv install
直接回车,后面不用跟任何东西。1分钟以后,服务器上面,这个项目依赖的环境就已经创建好了。代码可以正常运行了。就这么简单。
如果你使用了 pipenv,那么你什么都不用做。pipenv 已经帮你记录好了,就在 Pipfile 和 Pipfile.lock 这两个文件里面。
如果没有使用 pipenv,但是你使用了 Virtualenv,并且把这个项目依赖的第三方库都安装到了这个虚拟环境中,那么也不困难,执行命令:
pip freeze > requirements.txt
就会把项目依赖的第三方库写入到requirements.txt
文件里面。
部署代码的时候,把这个requirements.txt 跟项目代码一起复制到服务器上,使用如下命令安装这些第三方库。
python3 -m pip install -r requirements.txt
当然,你可以先在服务器上创建虚拟环境,然后在虚拟环境里面执行上面的命令。
如果你没有使用虚拟环境,所有项目的第三方库都直接安装在系统环境的Python里面。那么活该,你自己去看代码一个一个找吧。