Bagaimana saya bisa menginstal Django untuk Python 3.x?

32

Saya menginstal Django dengan perintah ini:

sudo apt-get install python-django

Dan itu menginstal versi 1.5.4-1ubuntu1. Dokumen Django mengatakan bahwa pada versi 1.5, Django mendukung Python 3. Namun ketika saya menjalankan interpreter python 3 dan mencoba mengimpor Django, dikatakan tidak ada modul seperti itu. Saya mencoba mencari versi python3 Django, tetapi tidak ada paket seperti itu. Bagaimana saya bisa mendapatkan Django bekerja di python3? Saya lebih suka menggunakan paket ubuntu daripada menginstalnya secara manual.

Jonathan
sumber

Jawaban:

38

Saya sangat menyarankan pip3untuk tidak menginstal hal-hal dalam paket sistem situs. Saya telah membuat argumen ini sebelumnya, tetapi saya akan memberi Anda catatan:

  • Pembaruan sistem merusak segalanya
  • Menginstal paket apt dapat menimpa hal-hal yang diinstal pada pip
  • Konflik versi
  • Pembaruan distribusi adalah kekacauan yang tidak dapat diprediksi . Serius. Saya kehilangan rambut untuk ini.

Saya akan sangat menganjurkan penggunaan virtualenv. Ini adalah rasa sakit yang luar biasa di mana pun untuk pergi tetapi setelah Anda mengaturnya, Anda memiliki lingkungan Python lengkap di bawah kendali penuh Anda. Ini berarti lebih banyak pekerjaan (Anda harus memeriksa hal-hal untuk pembaruan dan pipbelum benar-benar membantu di sana) tetapi Anda tidak perlu khawatir tentang apa yang sedang dilakukan Ubuntu.

Saya memiliki lingkungan untuk setiap situs (hanya duduk di subdirektori bernama venv). Beberapa orang — termasuk saya, sekali waktu — lebih suka berbagi lingkungan di antara banyak situs. Saya menemukan ini lebih mudah untuk dipertahankan dalam hal mengeluarkan pembaruan tetapi beberapa situs dapat rapuh atau memerlukan versi lama dan yang menahan seluruh lingkungan. YMMV.

Dalam hal menginstal ini, dan hanya untuk menampar wajah saya, virtualenvbelum dikemas untuk Python 3 jadi kita harus menggunakan 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!

Bash PS1 Anda sekarang harus diubah (myenv)untuk memberi tahu Anda bahwa Anda berada di lingkungan yang berbeda. Kita dapat menguji lingkungan untuk memeriksa kita berada di versi yang benar (tidak menggunakan versi sistem sebagai permulaan):

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

Dan kemudian Anda bisa melanjutkan seolah-olah Anda adalah penguasa alam semesta. Anda tidak perlu root untuk digunakan piplagi dan Anda tidak perlu menentukan pip3. Itu jauh lebih ramah.

$ pip install django umemcache
...

Jika Anda menggunakan sesuatu seperti uwsgiuntuk meng-host ini (Anda harus) menggunakan flag -H-nya (atau argumen konfigurasi rumah) untuk memberi tahu di mana lingkungan Python tinggal.

Sedangkan untuk memudahkan pengembangan, Anda dapat "memasang" virtualenvlingkungan Anda secara otomatis . Ada banyak skrip di luar sana tetapi ini adalah milikku (ini hidup di bagian bawah saya ~/.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 .

Setiap kali saya cdmasuk /web(tempat semua situs web pengembangan saya disimpan), ia memasang virtualenv untuk saya. Perhatikan bahwa saya hanya memiliki satu lingkungan untuk semua situs saya jadi ini hanya akan cocok untuk Anda jika Anda melakukan sesuatu yang serupa. Ada banyak cara lain untuk melakukan hal serupa .

Oli
sumber
18

Saya menemukan cara untuk melakukan ini pip. Ternyata saya membutuhkan pip3:

sudo pip3 install Django

melakukan trik.

Anda mungkin perlu mendapatkan pip3 dengan:

sudo apt-get install python3-pip
Jonathan
sumber
3

Django untuk Python3 sekarang telah ditambahkan baru-baru ini. Jadi cukup ketikkan terminal:

apt-get install python3-django

Thomas Goirand
sumber
1
E: Unable to locate package python3-django
Jonathan
1
Ini tidak tersedia untuk Ubuntu 14,04 Tahr Trusty.
Anwar
1
Saya tidak menyarankan menggunakan system-repos Django. Jika akan ada pembaruan, beberapa fungsi yang Anda gunakan mungkin tidak berfungsi setelah pembaruan. Lebih baik gunakan pendekatan virtual-env seperti yang ditunjukkan di atas.
0xAffe
Saya menggunakan Debian terbaru (8, terbaru), dan Django 1.7.11 (yang merupakan EOL!) Adalah versi terbaru yang tersedia di repositori. Sepertinya Ubuntu memiliki versi yang didukung (1.8.7.) Saya ingin tahu mengapa Debian sangat ketinggalan?
Hydraxan14
3

Guys ada cara mudah menggunakan virtualenvwrapper , sejauh ini yang paling mudah untuk mengelola lingkungan virtual Python 2.7 / 3.x di Ubuntu / Debian.

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

Opsional memungkinkan --system-site-packagesuntuk menggunakan kembali paket situs global.
virtualenv menginstal pip dan alat pengaturan python lainnya untuk membantu kami memulai dengan cepat.

$ pip install Django
$ pip install -r requirements.txt
Sandeep
sumber