Làm cách nào để cài đặt Django cho Python 3.x?


32

Tôi đã cài đặt Django với lệnh này:

sudo apt-get install python-django

Và nó đã cài đặt phiên bản 1.5.4-1ubfox1. Các tài liệu Django nói rằng kể từ phiên bản 1.5, Django hỗ trợ Python 3. Tuy nhiên, khi tôi chạy trình thông dịch python 3 và thử nhập Django, nó nói rằng không có mô-đun nào như vậy. Tôi đã thử tìm kiếm một phiên bản python3 của Django, nhưng không có gói nào như vậy tồn tại. Làm thế nào tôi có thể có được django làm việc trên python3? Tôi thích sử dụng các gói Ubuntu thay vì cài đặt mọi thứ bằng tay.


1
Hãy xem Askubfox.com/questions/666933/ Làm việc cho tôi ... :)

Câu trả lời:


38

Tôi thực sự khuyên bạn nên tránh pip3cài đặt mọi thứ trong gói trang web của hệ thống. Tôi đã đưa ra những lập luận này trước đây nhưng tôi sẽ cung cấp cho bạn các ghi chú:

  • Cập nhật hệ thống phá vỡ mọi thứ
  • Cài đặt gói apt có thể ghi đè lên những thứ được cài đặt pip
  • Phiên bản xung đột
  • Nâng cấp phân phối là sự hỗn loạn không thể đoán trước . Nghiêm túc. Tôi đã rụng tóc vì những điều này.

Tôi sẽ ủng hộ mạnh mẽ bằng cách sử dụng virtualenv. Đó là một nỗi đau lớn ở mọi nơi để đến nhưng khi bạn đã thiết lập xong, bạn có một môi trường Python hoàn chỉnh dưới sự kiểm soát hoàn toàn của bạn. Điều này không có nghĩa là nhiều việc hơn (bạn sẽ phải kiểm tra mọi thứ để cập nhật và pipchưa thực sự giúp đỡ ở đó) nhưng bạn không phải lo lắng về những gì Ubuntu đang làm.

Tôi có một môi trường cho mỗi trang web (chỉ cần ngồi trong thư mục con được gọi venv). Một số người khác, trong đó có một lần, tôi thích chia sẻ môi trường của họ giữa nhiều trang web. Tôi thấy điều này dễ duy trì hơn trong việc phát hành các bản cập nhật nhưng một số trang web có thể dễ hỏng hoặc yêu cầu các phiên bản cũ và giữ lại toàn bộ môi trường. YMMV.

Về mặt cài đặt, và chỉ cần tát vào mặt tôi, virtualenvchưa được đóng gói cho Python 3 nên chúng tôi phải sử dụng pip3:

$ sudo pip3 install virtualenv
...

$ virtualenv-3.3 myenv
Using base prefix '/usr'
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
Installing setuptools, pip...done.

$ source myenv/bin/activate  # This is important!

PS1 bash của bạn bây giờ nên được bổ sung (myenv)để cho bạn biết bạn đang ở một môi trường khác. Chúng tôi có thể kiểm tra môi trường để kiểm tra xem chúng tôi có đúng phiên bản của mọi thứ không (không sử dụng phiên bản hệ thống cho người mới bắt đầu):

$ python --version
Python 3.3.2+
$ which python pip 
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip

Và sau đó bạn có thể tiếp tục như thể bạn là chủ nhân của vũ trụ. Bạn không cần root để sử dụng pipnữa và bạn không cần chỉ định pip3. Nó chỉ thân thiện hơn nhiều.

$ pip install django umemcache
...

Nếu bạn đang sử dụng một cái gì đó như uwsgiđể lưu trữ cái này (bạn nên) sử dụng cờ -H của nó (hoặc đối số cấu hình nhà) để nói với nó nơi môi trường Python sống.

Để việc phát triển dễ dàng hơn, bạn có thể tự động "gắn kết" virtualenvmôi trường của mình . Có nhiều kịch bản ngoài kia nhưng cái này là của tôi (cái này nằm ở dưới cùng của tôi ~/.bashrc:

export VENVDIR="/web"
export VENVDIR_VENV="$VENVDIR/venv"

venvcd() {
        wd=$(pwd)
        [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]] && wasin=true || unset wasin

        builtin cd "$@"

        wd=$(pwd)
        if [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]]; then
                source $VENVDIR_VENV/bin/activate
        else
                [ $wasin ] && deactivate
        fi
}
alias cd="venvcd"

cd .

Bất cứ khi nào tôi cdvào /web(nơi lưu trữ tất cả các trang web phát triển của tôi), nó sẽ gắn kết virtualenv cho tôi. Lưu ý rằng tôi chỉ có một môi trường cho tất cả các trang web của mình vì vậy điều này sẽ chỉ phù hợp với bạn nếu bạn làm điều gì đó tương tự. Có nhiều cách khác để làm những điều tương tự .


18

Tôi đã tìm ra cách để làm điều này với pip. Hóa ra tôi cần pip3:

sudo pip3 install Django

đã lừa

Bạn có thể cần lấy pip3 bằng cách:

sudo apt-get install python3-pip

3

Django cho Python3 hiện đã được thêm vào gần đây. Vì vậy, chỉ cần gõ vào một thiết bị đầu cuối:

apt-get install python3-django


1
E: Unable to locate package python3-django
Jonathan

1
Nó không có sẵn cho Ubuntu 14.04 Trusty Tahr.
Anwar

1
Tôi không đề nghị sử dụng django hệ thống repos. Nếu có bản cập nhật, một số chức năng bạn đang sử dụng có thể không hoạt động sau khi cập nhật. Sử dụng tốt hơn phương pháp ảo-env như hình trên.
0xAffe

Tôi đang sử dụng Debian mới nhất (8, cập nhật) và Django 1.7.11 (là EOL!) Là phiên bản mới nhất có sẵn trong kho. Có vẻ như Ubuntu có phiên bản được hỗ trợ (1.8.7.) Tôi tự hỏi tại sao Debian lại bị bỏ xa như vậy?
Hydraxan14

3

Các bạn có một cách dễ dàng bằng cách sử dụng virtualenvwrapper , cho đến nay là cách dễ nhất để quản lý môi trường ảo Python 2.7 / 3.x trong Ubuntu / Debian.

$ sudo apt-get install python3 virtualenvwrapper
$ mkvirtualenv <venv> -p python3
$ workon <venv> # sets into the virtualenv from any terminal.

Tùy chọn cho phép --system-site-packagessử dụng lại các gói trang web toàn cầu.
virtualenv cài đặt pip và các công cụ thiết lập python khác để giúp chúng tôi bắt đầu nhanh chóng.

$ pip install Django
$ pip install -r requirements.txt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.