目前刚开始写一个python项目,希望用virtualenv来实现环境隔离。这样的话,在项目目录下就会有大量的第三方库文件。大家在用git管理项目的时候,该如何处理呢?
我想到了三个解决方法:
.gitignore
忽略掉/venv
目录我在这方面没什么经验,各位有什么经验可以分享吗?谢谢。
1
fangpeishi 2015-02-08 20:52:29 +08:00 1
我的个人小项目是用.gitignore忽略掉/venv目录,然后freeze出一个requires文件供其他其他环境下使用。
|
2
mxi1 2015-02-08 20:54:45 +08:00 via iPhone
virtualenv目录可以放在任意地方,所以你不用将virtualenv目录跟你的项目文件混在一起的
|
3
crazyxin1988 2015-02-08 20:55:36 +08:00
.gitignore忽略掉
开发的时候 我没用virtualenv 部署的时候才用~ |
4
banbanchs 2015-02-08 20:56:55 +08:00
用virtualenvwrapper,比较方便,库文件都放在~/.virtualenvs下
|
5
Melodic 2015-02-08 22:58:09 +08:00
顶楼上吧,也是从一开始就用virtualenvwrapper的。lsvirtualenv mkvirtualenv之类的,也很方便
|
6
ratazzi 2015-02-08 23:51:29 +08:00
echo * > /path/to/virtualenv/.gitignore 即可,项目的 .gitignore 不用改,依赖都用 pip install -r requirements.txt
|
7
zhouquanbest 2015-02-09 00:21:31 +08:00
我在 virtualenv 的目录下建了一个 source 目录
代码丢里面就完事了 |
8
taobeier 2015-02-09 01:25:38 +08:00
用virtualenvwrapper 或者gitignore 忽略掉都可以
|
9
iewgnaw 2015-02-09 10:36:55 +08:00
virtualenvwrapper 从没遇到过这问题
|
10
hbin 2015-02-09 11:21:01 +08:00
我用 pyenv-virtualenv
|
11
dagger 2015-02-09 17:22:15 +08:00
楼主,如果没猜错你的想法的话,你想保存的对象是
- 项目代码 - 用到的包或者直接就是包的名字、版本(而不是搭好的virtualenv环境本身) 而最终目的是 1. 记录使用到的包 2. 方便部署 而你现在的方案其实这两个目的都难以达到。直接保存venv下已经安装的包的结果就是你自己看目录树都看的眼花缭乱。部署的话,直接把本地安装的包搬上去说不定会有问题。正规的做法使用puppet或者ansible之类的部署工具,用git保存部署脚本,哪怕部署在本地也适合这样做。简单点的话,存个requirements.txt也比直接存包的文件来的合适 |
12
KyL OP 看了大家的分享的个人经验,大概知道该怎么做了。谢谢。
|
13
guoqiao 2015-02-11 17:00:25 +08:00
用virtualenvwrapper可以完美解决这个烦恼, 所有虚拟环境统一管理, 和代码分离.
在任意目录 workon xxx 就能激活 xxx 虚拟环境, 并可以在激活后自动 cd 到项目所在目录, 非常方便. |
14
tolerious 2015-03-03 00:11:04 +08:00 via iPhone
一般用一楼的方法,写一个requirement 文件,然后.gitignore 忽略env文件
|