目前刚开始写一个python项目,希望用virtualenv来实现环境隔离。这样的话,在项目目录下就会有大量的第三方库文件。大家在用git管理项目的时候,该如何处理呢?
我想到了三个解决方法:
.gitignore
忽略掉/venv
目录我在这方面没什么经验,各位有什么经验可以分享吗?谢谢。
![]() | 1 fangpeishi 2015-02-08 20:52:29 +08:00 ![]() 我的个人小项目是用.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文件 |