前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给 Python 初学者解答了无数遍的 Python 环境相关问题

给 Python 初学者解答了无数遍的 Python 环境相关问题

作者头像
青南
发布2020-06-11 10:07:08
1.2K0
发布2020-06-11 10:07:08
举报
文章被收录于专栏:未闻Code未闻Code

为了避免总是被初学者问相同的问题,我总结了一些在公众号粉丝群里面被问得比较多的问题。

电脑里面能不能安装多个Python?

请参阅Python 初学者常见错误——我有 Anaconda 了,还能单独安装 Python 吗?

为什么应该使用 Virtualenv 创建虚拟环境

如果你所有项目都使用系统环境的 Python,那么如果不同项目依赖同一个第三方库的不同版本,并且不同版本的语法还不一样,你就傻了。Redis-py 就因为升级修改了Hash 的hset方法的参数格式,导致很多人的代码运行出现了问题。

Virtualenv 的命令好复杂,我记不住怎么办?

使用 pipenv。它能帮你完成复杂的一切。

请在两分钟内让我学会使用pipenv

  1. 安装 pipenv: python3 -m pip install pipenv
  2. 首先创建一个项目文件夹:mkdir example_project
  3. 进入项目文件夹:cd example_project
  4. 执行命令pipenv shell
  5. (中国大陆专用)文件夹里面会自动生成一个Pipfile文件,用记事本或者 vim 打开它,修改url =后面的网址,改为:url = "https://mirrors.163.com/pypi/simple/"如图1所示。(如果你不在大陆,可以跳过这步)
  6. 安装第三方库pipenv install xxx例如:pipenv install requests

图1:使用网易源提高下载速度

以上就是全部操作步骤了。pipenv 会自动帮你创建虚拟环境,并帮你管理第三方库。如果使用 PyCharm,那么当你用 PyCharm 打开这个文件夹的时候,它会自动识别这个虚拟环境。

如果你是使用命令行来运行代码,那么每次打开一个新的终端窗口并进入这个项目文件夹,只需要首先执行一次命令:pipenv shell,然后自动激活了虚拟环境。此时当你执行python3 xxx.py时,自动使用这个虚拟环境的 Python。

pipenv 创建的虚拟环境在哪里?部署时是否要把它里面的文件复制到服务器?

作为一个初学者,你不需要知道 pipenv 创建的虚拟环境在哪里。更不应该把虚拟环境复制到服务器上。在绝大多数情况下,这样做的人是傻子,除非你部署代码的服务器不支持外网访问又没有配置私有的 Pypi 源(这种情况下,你不是傻子,你老板是)。

正确的做法,是在服务器上重新安装这个项目需要的依赖。

pipenv 已经帮你把项目依赖的第三方库记录在你 Pipfile 文件中了。而版本号记录到了Pipfile.lock 文件中。你部署项目代码的时候,把这两个文件跟项目代码一起放到服务器上面。

然后进入项目文件夹下面,执行如下两行命令:

代码语言:javascript
复制
pipenv install
pipenv shell

注意,pipenv install直接回车,后面不用跟任何东西。1分钟以后,服务器上面,这个项目依赖的环境就已经创建好了。代码可以正常运行了。就这么简单。

如何记录当前项目依赖的第三方库?

如果你使用了 pipenv,那么你什么都不用做。pipenv 已经帮你记录好了,就在 Pipfile 和 Pipfile.lock 这两个文件里面。

如果没有使用 pipenv,但是你使用了 Virtualenv,并且把这个项目依赖的第三方库都安装到了这个虚拟环境中,那么也不困难,执行命令:

代码语言:javascript
复制
pip freeze > requirements.txt

就会把项目依赖的第三方库写入到requirements.txt文件里面。

部署代码的时候,把这个requirements.txt 跟项目代码一起复制到服务器上,使用如下命令安装这些第三方库。

代码语言:javascript
复制
python3 -m pip install -r requirements.txt

当然,你可以先在服务器上创建虚拟环境,然后在虚拟环境里面执行上面的命令。

如果你没有使用虚拟环境,所有项目的第三方库都直接安装在系统环境的Python里面。那么活该,你自己去看代码一个一个找吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 电脑里面能不能安装多个Python?
  • 为什么应该使用 Virtualenv 创建虚拟环境
  • Virtualenv 的命令好复杂,我记不住怎么办?
  • 请在两分钟内让我学会使用pipenv
  • pipenv 创建的虚拟环境在哪里?部署时是否要把它里面的文件复制到服务器?
  • 如何记录当前项目依赖的第三方库?
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档