大家是如何在 virtualenv 下使用 git 的呢

2015-02-08 20:47:58 +08:00
 KyL

目前刚开始写一个python项目,希望用virtualenv来实现环境隔离。这样的话,在项目目录下就会有大量的第三方库文件。大家在用git管理项目的时候,该如何处理呢?

我想到了三个解决方法:

我在这方面没什么经验,各位有什么经验可以分享吗?谢谢。

7076 次点击
所在节点    Python
14 条回复
fangpeishi
2015-02-08 20:52:29 +08:00
我的个人小项目是用.gitignore忽略掉/venv目录,然后freeze出一个requires文件供其他其他环境下使用。
mxi1
2015-02-08 20:54:45 +08:00
virtualenv目录可以放在任意地方,所以你不用将virtualenv目录跟你的项目文件混在一起的
crazyxin1988
2015-02-08 20:55:36 +08:00
.gitignore忽略掉
开发的时候 我没用virtualenv
部署的时候才用~
banbanchs
2015-02-08 20:56:55 +08:00
用virtualenvwrapper,比较方便,库文件都放在~/.virtualenvs下
Melodic
2015-02-08 22:58:09 +08:00
顶楼上吧,也是从一开始就用virtualenvwrapper的。lsvirtualenv mkvirtualenv之类的,也很方便
ratazzi
2015-02-08 23:51:29 +08:00
echo * > /path/to/virtualenv/.gitignore 即可,项目的 .gitignore 不用改,依赖都用 pip install -r requirements.txt
zhouquanbest
2015-02-09 00:21:31 +08:00
我在 virtualenv 的目录下建了一个 source 目录
代码丢里面就完事了
taobeier
2015-02-09 01:25:38 +08:00
用virtualenvwrapper 或者gitignore 忽略掉都可以
iewgnaw
2015-02-09 10:36:55 +08:00
virtualenvwrapper 从没遇到过这问题
hbin
2015-02-09 11:21:01 +08:00
我用 pyenv-virtualenv
dagger
2015-02-09 17:22:15 +08:00
楼主,如果没猜错你的想法的话,你想保存的对象是
- 项目代码
- 用到的包或者直接就是包的名字、版本(而不是搭好的virtualenv环境本身)

而最终目的是
1. 记录使用到的包
2. 方便部署

而你现在的方案其实这两个目的都难以达到。直接保存venv下已经安装的包的结果就是你自己看目录树都看的眼花缭乱。部署的话,直接把本地安装的包搬上去说不定会有问题。正规的做法使用puppet或者ansible之类的部署工具,用git保存部署脚本,哪怕部署在本地也适合这样做。简单点的话,存个requirements.txt也比直接存包的文件来的合适
KyL
2015-02-09 21:08:25 +08:00
看了大家的分享的个人经验,大概知道该怎么做了。谢谢。
guoqiao
2015-02-11 17:00:25 +08:00
用virtualenvwrapper可以完美解决这个烦恼, 所有虚拟环境统一管理, 和代码分离.
在任意目录 workon xxx 就能激活 xxx 虚拟环境, 并可以在激活后自动 cd 到项目所在目录, 非常方便.
tolerious
2015-03-03 00:11:04 +08:00
一般用一楼的方法,写一个requirement 文件,然后.gitignore 忽略env文件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169327

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX