2017-09-13 57 views
-1

正当我想我开始用django获得句柄时,我开始阅读Django的两个Scoops,他们建议使用Cookiecutter而不是常规的django-admin startproject。 Two Scoops的作者在virtualenv上很出色。我一直在使用Anaconda,因为所有地方都说它比virtualenv更好。我很想摆脱anaconda,只是使用virtualenv试图让这个工作,但我想先在这里问。有人得到django cookiecutter与anaconda而不是virtualenv?

任何人都知道如何让cookiecutter与Anaconda一起工作?

+0

你应该看看[问]和[帮助/关于话题] – pvg

回答

1

我认为你对anaconda的实际状况以及虚拟环境是什么感到困惑。在一天结束时,他们都只是Python的安装(希望)包括运行你的代码所需的二进制文件。

您的问题的答案是使用虚拟环境,而不是项目的anaconda,然后将您的依赖项存储在requirements.txt文件中,以便任何拥有您的项目基本代码的人都可以安装项目所需的确切依赖项到他们的虚拟环境

那么,有什么区别? Anaconda本质上就是python,其中包含一些预安装的库,用于数据分析。这意味着你作为程序员不必担心安装matplotlib,熊猫或其他过多的库。它还包含一个执行python代码的二进制文件。

虚拟环境本质上是一个准系统python环境。它将运行Python代码所需的二进制文件复制到您创建虚拟环境的任何位置。我通常会创建在我的本地目录是这样的(蟒蛇3.6+)环境:

python -m venv .venv

将在隐藏目录.venv建立在我的当前目录下的虚拟环境。使用source将我的项目设置为默认解释器后,我可以根据需要为此环境安装依赖项。例如

source .venv/bin/activate

你会发现,如果你运行which python,它会立即指向你的shell什么,而不是默认的Python是手..例如前,

$ which python 
/Users/you/path/to/.venv 

现在你根据需要将安装您depencies ..即

pip install <library>

甚至更​​好

pip install requirements.txt

+0

感谢尼克。但现在我更加困惑。我能够用Anaconda创建准系统python环境。 https://stackoverflow.com/questions/34398676/does-conda-replace-the-need-for-virtualenv – BaconSandwich

+0

来自virtualenv或conda的python环境做同样的事情 - 运行python代码。 anaconda也有它自己的包管理器,可以用来代替点(例如'conda install ..'而不是'pip install ..')。有些人喜欢使用其中一种,但在一天结束时,这并不重要。 virtualenv和点子就好了。我一直都在使用它们。我只是避免让自己与其中一方混淆。只要意识到他们正在做很多相同的事情。我建议使用virtualenv,直到你理解所有的东西,因为它是默认的python实现 –

+0

我同意@NickBrady。你应该使用推荐的工具来完成这项工作。 Virtualenv工作得很好 –