我有python版本2.7.3
,我想学习django所以我在我的ubuntu 12.0.4上安装了django版本1.8.2。
invivtus@invictus:~/bin$ python
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 8, 2, 'final', 0)
然后我读到你用django工作的最好方法是使用python版本3.3
所以我在我的系统上安装了python版本3.3.6,其中py是指向/opt/python3.3/bin的符号链接/python3.3
invictus@invictus:~/bin$ py
Python 3.3.6 (default, Jun 21 2015, 16:13:35)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
当我尝试导入django时,我得到错误
>>> import django
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'django
我看到django安装了我的python 2.7目录。
>>> import django
>>> django
<module 'django' from '/usr/local/lib/python2.7/dist-packages/django/__init__.pyc'>
我如何在我的3.3.6版本中使用这个django。我的默认python版本是2.7.3 这里可以锻炼什么?
答案 0 :(得分:2)
是的,每个Python版本都有自己的已安装软件包的文件夹。您必须为Python 3.3单独安装Django。对于默认情况下不可用的每个包都是如此。
(如果您正在使用Python 3,为什么不选择最新最好的3.4?)
答案 1 :(得分:1)
正如一些评论所说,你应该使用virtualenv来隔离你的环境。你会这样做:
1)确保您已安装virtualenv
。例如,在Ubuntu上,这将是包virtualenv
。
2)创建一个新的空白环境。你选择它会是这样的python版本:
virtualenv -p /usr/bin/python3.4 env
3)创建了一个env
文件夹。激活新创建的环境:
. env/bin/activate
这会更新您的路径,现在,当您从此shell运行python
或pip
时,它们将在您的virtualenv的上下文中执行。
4)更新virtualenv(可选)
pip install -U pip
5)安装您需要的任何软件包。建议的方法是在项目的根目录下有一个requirements.txt
文件。你会这样拉他们:
pip install -r myproject/requirements.txt
就是这样。像往常一样使用pip
命令。只要您使用virtualenv active,您的python
命令将只看到您明确安装在其中的模块。
6)不要忘记在每个新shell中重新运行. env/bin/activate
。如果您认为自己可能会忘记,可以将其添加到manage.py
:
import sys
if __name__ == "__main__":
if not hasattr(sys, 'real_prefix'):
sys.stderr.write('Running outside of any virtualenv - did you forget to activate one?\n')
有什么好处?
requirements.txt
保持最新状态(使用pip freeze
),就可以在另一个系统上重建virtualenv,这样就可以了。[编辑:使用requirements.txt]
这只是一个具有pip install
规范的文件,一个接一个。它允许从头开始重建virtualenv。您可以使用以下命令从当前的virtualenv生成它:
pip freeze > requirements.txt
所以我的想法只是记住每次更改环境时重新运行此命令(安装,删除或升级某些软件包)。