前言
一般我们都是使用pip安装三方库,用起来很方便。但是所有项目的依赖都在一个环境中。
如果我们要把项目部署到服务器上面的话,就稍微有些麻烦了,因为还需要在服务器上用pip安装这些包,假如项目中用到很多包的话,一个个安装会很麻烦,而且没有通用性。
Java上的maven、gradle,NodeJS的npm这些工具就不存在这个问题,它们有一个或多个的专门的依赖文件来管理这些包。
pipenv就是这样一个类似的工具,可以帮助我们管理Python和第三方库的版本。
设置镜像
Windows
打开用户目录
1 | %userprofile% |
创建pip
文件夹
创建pip.ini
文件
内容如下:
1 | [global] |
注意
不建议用阿里云的镜像,限速限的厉害。
验证是否生效
1 | pip config list |
Linux
Linux下,修改 ~/.pip/pip.conf
(没有就创建一个文件夹及文件。文件夹要加.
,表示是隐藏文件夹)
virtualenv
上面所说的pipenv
,实际上就是依赖于virtualenv
,我建议使用pipenv
。
因为virtualenv有以下几个问题
- 导出依赖的时候也会导出依赖的依赖,这样依赖就会比较杂乱。
- 不能区分项目依赖和开发依赖。
- 使用不方便,每次部署前要先导出,然后在部署环境导入。
通过 virtualenv 来给每个项目独立创建包管理环境,并且可以独立出 Python 的运行环境。
- virtualenv就是一个搭建虚拟化的python环境,便于不同的项目在同一台机器上开发运行。
- 在生产环境中还是使用docker给不同的项目创建不同的容器,各自分开运行为好,不宜放在一个单独的物理机中运行。
安装依赖
1 | pip install virtualenv |
项目目录下运行
1 | virtualenv venv |
激活
1 | .\venv\Scripts\activate.bat |
一旦进入到虚拟环境中,安装、卸载库都是在这个虚拟环境中,不会影响到其他环境
退出
1 | .\venv\Scripts\deactivate.bat |
此时还需将当前工程的interpreter改为当前的虚拟环境,要不然会不起作用。
PyCharm中设置
File
=>Settings
搜索Python Interpreter
依赖导出导入
项目下运行一下命令导出依赖
1 | pip freeze > requirements.txt |
在待部署机器上,使用以下命令安装就可以恢复依赖环境:
1 | pip install -r requirements.txt |
常见问题
问题1
CMake is not installed on your system!
安装
1 | pip install cmake |