1
congeec 2016-09-26 10:50:45 +08:00
需要,以后你还需要服务器代码的版本控制
用 virtualenv 或 docker 吧 |
2
pyengwoei OP @congeec 好的谢谢了,因为我才接触 Python , 接受一个项目,但是这个项目以前是没有用 PIP 安装模块的,是直接通过: parent_dir = os.path.abspath(os.path.dirname(__file__))
vendor_dir = os.path.join(parent_dir, 'vendor') 这样把模块弄在工程目录一起的 |
3
ztyoung 2016-09-26 10:53:33 +08:00
需要。
可以开发的时候使用 virtualenv ,那样可以将模块一起移植过去。 |
4
araraloren 2016-09-26 10:53:45 +08:00
~~是迁移吧,移植不是这个意思
|
6
felixonmars 2016-09-26 11:02:23 +08:00
@pyengwoei 有用到系统库等外部资源的话,除非所有环境的系统版本都一致,否则建议重建 virtualenv 。
|
7
pyengwoei OP @felixonmars 只要是系统版本一样,就可以直接拷贝?
|
8
felixonmars 2016-09-26 11:07:51 +08:00
@pyengwoei 包括用到的包、包的来源。不能确定的话,从同一个模板用同样的步骤装包总是没错的……
|
9
pyengwoei OP @felixonmars 我是把 site-packages 这个目录里面所有的文件打包出来的
|
10
bcllemon 2016-09-26 11:20:11 +08:00 1
可以用 pipreqs 生成依赖文件,到服务上使用 virtualenv 创建虚拟环境,然后使用 pip install -r requirements.txt 进行批量安装
|
12
pyengwoei OP @bcllemon 还有一个小白问题,直接用 PIP 安装模块,和去 site-packages 目录里面直接拷贝需要的模块到另外一个环境 应该不行吧
|
13
jy01264313 2016-09-26 12:03:28 +08:00
写一个 requirements 文件吧,直接 pip install -r requirements
|
14
bwangel 2016-09-26 12:20:52 +08:00 1
如果开发环境和服务器环境相同的话(例如我的都是 Ubuntu 16.04 ),那么本地使用 virtualenv , virtualenv 有一个--aloways-copy 选项,会把相关的C动态库什么的都复制过来,部署的时候直接把那个 virtualenv 复制上去就好了!
如果如果开发环境和服务器环境不同的话(例如Mac和 CentOS ),那么有两种办法: 1.本地先装好一个 Docker ,然后直接把 Docker 复制到服务器上去。(本地网络毕竟比服务器快,操作方便),或者写好 Docker file ,在服务器上 Build 2. 在本地通过 pip freeze 生成一个 requirements ,在服务器上装相关 pip 包 |
15
bwangel 2016-09-26 12:21:49 +08:00
对了, Pycharm 的项目设置里,可以设置 Python 解释器,如果使用 virtualenv 的话,记得设置上 virtualenv 中的 Python 。
|
16
xvx 2016-09-26 12:45:11 +08:00 via Android 1
我刚用 Pycharm ,这货好像就有类似 virtualenv 的功能吧,创建项目的时候可以选择的。
|
17
qweweretrt515 2016-09-26 13:49:38 +08:00 1
docker
|
18
aiver 2016-09-26 14:53:43 +08:00 1
pip freeze 生成 requirements 文件,然后服务器上 pip -r requirements 安装即可,但一般要大版本一致,如 2.7+版本或 3.3+版本;或, Docker 。
|
19
alphadog619 2016-09-26 14:58:12 +08:00
部署后 服务器会按照 requirements.txt 安装和开发环境一样版本的各个库
|
22
pyengwoei OP 好的,我找下
|
23
kenfor 2016-09-26 16:30:13 +08:00
必须重新安装。 Linux 的话直接用 pip 安装就好了
|
24
skywatcher 2016-09-26 19:50:24 +08:00
最近也在考虑这个问题,虽然可以用 virtualenv 生成和导入 requirements.txt ,但是还是会出现对一些系统模块的依赖,到新的机器上又得全部 yum ( centos )重新安装一遍,还是麻烦;等 python 环境的打包、发布模块完成再来回答这个问题吧。
|
25
bcllemon 2016-09-27 13:04:16 +08:00
@pyengwoei site-packages 里面有些是和环境相关的,除非你本地开发环境和服务器环境 100%一样,否则很大可能出现各种未知错误.
|
26
pyengwoei OP @skywatcher 这模块是你自己开发?
|
28
skywatcher 2016-09-29 15:53:05 +08:00
@pyengwoei 在考虑中
|
29
fhefh 2016-10-04 19:59:44 +08:00
mark~~
|
30
linruiyi 2016-10-08 15:40:49 +08:00
传统方式,写一个 requirements.txt 文件,然后一次性安装。可以尝试一下 docker 。
|