D. *_*ans 19 python git virtualenv
我目前有一个完全符合我需要的方式设置git和virtualenv,到目前为止,没有造成任何问题.但是我知道我的设置是非标准的,我想知道是否有人更熟悉virtualenv的内部结构可以指出它是否以及可能出错的地方.
我的virtualenv是我的git仓库内,但混帐设置忽略bin和include目录,一切都在lib ,除了在site-packages目录中.
更确切地说,我的.gitignore文件看起来像这样:
*.pyc
# Ignore all the virtualenv stuff except the actual packages
# themselves
/bin
/include
/lib/python*/*
!/lib/python*/site-packages
# Ignore easyinstall and setuptools
/lib/python*/site-packages/easy-install.pth
/lib/python*/site-packages/setuptools.pth
/lib/python*/site-packages/setuptools-*
/lib/python*/site-packages/pip-*
Run Code Online (Sandbox Code Playgroud)
通过这种安排,我 - 以及其他任何从事项目结账工作的人 - 可以正常使用virtualenv和pip但具有以下优势:
如果有人更新或安装软件包并推送他们的更改,那么任何其他提取这些更改的人都会自动获得更新:他们不需要注意requirements.txt文件已更改或执行任何post-receive钩子魔法.
没有网络依赖:使应用程序工作的所有代码都存在于git存储库中.
我知道这只适用于纯Python包,但这就是我现在所关注的全部内容.
有谁知道我应该注意这种方法的任何其他问题?
Pau*_*sex 10
这是个有趣的问题.我认为其他两个答案(到目前为止)提出了很好的具体要点.显然你已经考虑过这个并且已经达到了你喜欢的解决方案,但我会注意到virtualenv用户之间似乎存在一种哲学上的分歧.
我认为你属于的一个阵营认为当地的VE是项目的一部分(即它应该受版本控制).另一方认为VE应该基本上被视为开发工件 - requirements.txt应该是项目存储库的一部分,但是您应该能够根据需要吹走并重新创建VE.
我只是提到这一点,因为当我第一次看到这种区别时,它有助于塑造我对virtualenv的思考.(我在第二个阵营,FWIW,因为它对我来说似乎更简单,更清洁,但这并不是说第一阵营在你的特定项目中是错误的.)
| 归档时间: |
|
| 查看次数: |
4767 次 |
| 最近记录: |