我对正在发生的事情感到有些困惑,但我可能只是误解了virtualenv的工作方式。
首先,我发现我遇到了错误,因为我的git文件夹的路径中有空格。从路径中删除空格后,我创建了一个新的virtualenv,然后当激活的pip列表开始正常工作时 - 显示安装到site-packages目录中的内容。注意,我没有使用--no-site-packages创建venv,并且我没有创建带有pip冻结的requirements.txt。
这里出现混乱......
在家里,我git pull同步,我看到了新的venv文件夹,但是:
是否存在pip冻结,因为在单独的计算机上设置东西意味着你需要全局安装requirements.txt中列出的内容(如果我创建了一个)?我认为venv会包含所有东西,因为它们已经在文件夹中,所以不需要安装包。
我知道它在virtualenv docs中提到了gitignore env,但我不明白为什么。而且我已经听说它更容易在回购中使用它。除非当然这是禁忌,因此我的麻烦。
我希望了解一些指导,了解pip,venv和git如何最好地一起使用多台计算机(当然还有多人)。你会认为谷歌搜索会解决它,但到目前为止,这些细节都没有找到我。
由于
答案 0 :(得分:1)
根据我的经验,跨多台计算机管理Python项目的最佳方法是不要尝试将pip包或virtualenv安装与程序一起分发,因为这会导致各种问题。事实上,我甚至不确定您尝试做什么是可能的。相反,我会建议如下:
将env
添加到.gitignore
文件,从您的git仓库中排除virtualenv安装。
运行pip freeze > requirements.txt
将所有必需的包写入requirements.txt
。
在您需要运行程序的任何其他计算机上,运行pip install -r requirements.txt
以安装所需的软件包。
这种方法除了非常简单之外,还为您(以及可能想要运行您的程序的任何其他人)提供了他们想要的灵活性来设置他们的本地Python环境。
答案 1 :(得分:0)
首先,我不是设置这个的专家,但现在就去了。
Git是版本控制。你拍摄文件和快照用git更改文件。就像设置一个检查站一样,它对监控和监控非常重要。轨道已完成&随版本控制而改变。
Virtualenv仅仅是一个虚拟环境。与设置服务器一样,您正在设置Python的虚拟环境。
使用virtualenv,您可以设置使用哪个版本的python / pip。 pip是一个包管理系统。它可以帮助您拉出所需的包装。所有的依赖。 如果某个库需要其他项目,那么它也会被拉出。 这种类型的图书馆管理'提供多种语言版本。
使用virtualenv,您可以指定要使用的内容; python2.7或3.5,或者你需要的任何版本,只要它在机器上使用它。
激活virtualenv后,您可以pip安装所需的库。当然,当您在该项目中激活virtualenv时,这些库是特定的。
requirement.txt文件只是一个快照你所拥有的内容的地方" pip install" ed。您可以将该文件传输到另一个项目并将其他库安装在其他位置。或者,您可以使用git将这些库放在回购中,但是您可能会遇到问题。
就我个人而言,我认为没有virtualenv我就能工作。我的一个项目可能需要python2.7,另外我看到需要python3.4所以它允许你灵活使用它。
同样在设置服务器(apache或nginx)时,您需要指出您的网站需要运行的virtualenv。
与所有这些设置有关,我只是一个新手但爱蟒蛇& django的。
我希望我做到了这一正义。 快乐的编码
请参阅以下文档,了解更详细的配置&解释。
[https://virtualenv.pypa.io/en/stable/][1]
[https://github.com/pypa/pip][1]
[https://git-scm.com/book/en/v2/Getting-Started-Git-Basics][1]