【问题标题】:Django, Pyenv and Git file structure on UbuntuUbuntu 上的 Django、Pyenv 和 Git 文件结构
【发布时间】:2015-04-30 10:57:13
【问题描述】:

我正在使用 Ubuntu 14.4 LTS 实例在 ec2 上建立一个 django 项目。我想使用 python 3 和 django 编写我的代码。我被告知最好的方法是使用 virtualenv。下列的 https://robinwinslow.co.uk/2013/12/26/python-3-4-virtual-environment/

我试过了:

 ~$ pyvenv-3.4 djenv

这似乎创建了一个 virtualenv(请参见屏幕截图)。现在我有两个问题:

1) 我应该将我的 django 项目放在哪个文件夹中。 - 我在 djenv 文件夹中思考。换句话说,我会跑:

/home/ubuntu/djenv$ django-admin.py startproject testproject.

2) 初始化一个 git 存储库。我假设我会在同一个位置,即

/home/ubuntu/djenv$ git init

从内部

这看起来是正确的还是有更好的方法来做到这一点?

【问题讨论】:

    标签: python django git ubuntu pyenv


    【解决方案1】:

    您的项目源代码应该与文件系统中的虚拟环境完全分开。如果它们按照您的建议在同一个地方,那么您最终将不必要地将库检查到您的 git 存储库中,这将占用额外的空间最终导致问题。

    激活 virtualenv 后,您可以运行 Python 并使用其中的所有库。您不需要文件系统中的任何连接。

    您应该在您的 git 存储库中存储一个 PIP 文件,该文件描述如何将相关依赖项安装到您的 virtualenv 中,以便您可以在另一台机器上重新创建它。

    在我的机器上,我的项目位于 /home/me/projects/«project»,而我的 virtualenvs 位于 /home/me/envs/«envname»。我使用virtualenvwrapper,这让事情变得简单。

    创建环境

    $ mkvirtualenv test
    New python executable in test/bin/python
    Installing Setuptools......done.
    Installing Pip.........done.
    

    激活它

    $ workon test
    

    Python 现在指的是我环境中的那个。它有自己的站点包等。

    $ which python
    /Users/joe/Envs/test/bin/python
    

    如果我们运行它并查看路径,它们指向 virtualenv。这是它寻找包的地方(为简单起见,从我的路径中删除了很多)。

    $ python
    Python 2.7.5 (default, Mar  9 2014, 22:15:05)
    [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.path
    ['', '/Users/joe/Envs/test/lib/python27.zip', '/Users/joe/Envs/test/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/Users/joe/Envs/test/lib/python2.7/site-packages']
    >>>
    

    【讨论】:

    • 嗨,乔,感谢您的帮助。我刚刚在看virtualenvwrapper.readthedocs.org/en/latest。我对如何使用您的方法为 virtualenv 设置特定的 python 解释器感到困惑。
    • 当你在虚拟环境中时,会自动选择合适的python解释器(实际上都是用符号链接完成的,但看起来python解释器在不同的路径上)。这就是 virtualenv 的重点。我将在我的答案中添加一个示例。
    • 我认为我没有很好地解释自己。我以前用过 virtualenvs,所以我理解这个概念,但是你如何告诉 virtualenvwrapper 在它创建的 virtualenv 中使用哪个 python 解释器?
    • virtualenv 有一个python 可执行文件,它只是指向实际解释器的符号链接。如果你运行mkvirtualenv --help,它会显示--python标志的文档,它允许你指定它应该链接到哪个版本。
    • 也许这个问题是相关的:stackoverflow.com/questions/6401951/…
    猜你喜欢
    • 2016-11-02
    • 2020-08-20
    • 1970-01-01
    • 2013-11-12
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多