ฉันจะติดตั้ง Django สำหรับ Python 3.x ได้อย่างไร


32

ฉันติดตั้ง Django ด้วยคำสั่งนี้:

sudo apt-get install python-django

และได้ติดตั้งเวอร์ชั่น 1.5.4-1ubuntu1 เอกสาร Django บอกว่าเป็นรุ่น 1.5, Django รองรับ Python 3 แต่เมื่อฉันรันล่าม python 3 และลองนำเข้า Django มันบอกว่าไม่มีโมดูลดังกล่าว ฉันพยายามค้นหา Django เวอร์ชัน python3 แต่ไม่มีแพ็คเกจดังกล่าวอยู่ ฉันจะทำให้ django ทำงานบน python3 ได้อย่างไร ฉันต้องการใช้แพ็คเกจ Ubuntu แทนการติดตั้งสิ่งต่าง ๆ ด้วยตนเอง


1
ตรวจสอบaskubuntu.com/questions/666933/…ใช้งานได้สำหรับฉัน ... :)

คำตอบ:


38

ฉันขอแนะนำอย่างยิ่งให้หลีกเลี่ยงpip3การติดตั้งสิ่งต่าง ๆ ในระบบไซต์แพ็กเกจ ฉันเคยทำข้อโต้แย้งเหล่านี้มาก่อนแต่ฉันจะให้โน้ตกับคุณ:

  • การอัปเดตระบบจะทำลายทุกสิ่ง
  • การติดตั้งแพกเกจ apt สามารถเขียนทับสิ่งที่ติดตั้ง pip ได้
  • ข้อขัดแย้งของเวอร์ชัน
  • การอัพเกรดการกระจายความวุ่นวายเป็นสิ่งที่คาดเดาไม่ได้ อย่างจริงจัง. ฉันมีผมร่วงกับสิ่งเหล่านี้

virtualenvฉันจะขอสนับสนุนการใช้ มันเป็นความเจ็บปวดครั้งใหญ่ในทุก ๆ ที่ที่จะไป แต่เมื่อคุณตั้งค่าแล้วคุณจะมีสภาพแวดล้อมแบบ Python ที่สมบูรณ์ภายใต้การควบคุมที่สมบูรณ์ของคุณ นี่หมายความว่าทำงานได้มากขึ้น (คุณจะต้องตรวจสอบสิ่งต่าง ๆ เพื่อรับการปรับปรุงและpipยังไม่ได้ช่วยอะไรจริงๆ) แต่คุณไม่ต้องกังวลเกี่ยวกับสิ่งที่ Ubuntu ทำ

ฉันมีสภาพแวดล้อมสำหรับแต่ละไซต์ (แค่นั่งในไดเรกทอรีย่อยที่เรียกว่าvenv) บางคนรวมถึงฉันทีละครั้ง - ชอบแชร์สภาพแวดล้อมระหว่างหลาย ๆ ไซต์ ฉันพบสิ่งนี้ง่ายกว่าในการรักษาในแง่ของการออกการปรับปรุง แต่บางเว็บไซต์อาจเปราะบางหรือต้องใช้รุ่นเก่าและที่ทำให้สภาพแวดล้อมทั้งหมดกลับมา YMMV

ในแง่ของการติดตั้งสิ่งนี้และเพื่อตบหน้าฉันvirtualenvไม่ได้บรรจุสำหรับ Python 3 ดังนั้นเราจึงต้องใช้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 ของคุณควรได้รับการ preneded ด้วย(myenv)เพื่อให้คุณรู้ว่าคุณอยู่ในสภาพแวดล้อมที่แตกต่างกัน เราสามารถทดสอบสภาพแวดล้อมเพื่อตรวจสอบว่าเราอยู่ในสิ่งที่ถูกต้อง (ไม่ได้ใช้เวอร์ชั่นระบบสำหรับผู้เริ่ม):

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

และจากนั้นคุณสามารถดำเนินการต่อราวกับว่าคุณเป็นผู้เชี่ยวชาญของจักรวาล คุณไม่จำเป็นต้องรากที่จะใช้อีกต่อไปและคุณไม่จำเป็นต้องระบุpip pip3มันเป็นมิตรมากขึ้น

$ pip install django umemcache
...

หากคุณกำลังใช้สิ่งที่ต้องการuwsgiโฮสต์สิ่งนี้ (คุณควร) ให้ใช้แฟล็ก -H (หรืออาร์กิวเมนต์การกำหนดค่าโฮม) เพื่อบอกว่าสภาพแวดล้อมของ Python นั้นอยู่ที่ใด

สำหรับการพัฒนาให้ง่ายขึ้นคุณสามารถ "ติดตั้ง" virtualenvสภาพแวดล้อมของคุณโดยอัตโนมัติ มีสคริปต์จำนวนมากออกมี แต่หนึ่งนี้เป็นของฉัน (ชีวิตนี้ที่ด้านล่างของฉัน~/.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 .

เมื่อใดก็ตามที่ฉันcdเข้าไป/web(ที่เก็บเว็บไซต์พัฒนาทั้งหมดของฉัน) มันจะติดตั้ง virtualenv ให้ฉัน โปรดทราบว่าฉันมีเพียงสภาพแวดล้อมเดียวสำหรับทุกไซต์ของฉันดังนั้นสิ่งนี้จะทำให้คุณเหมาะหากคุณทำสิ่งที่คล้ายกัน มีวิธีการอื่น ๆ ในการทำสิ่งที่คล้ายกัน


18

pipผมคิดว่าวิธีการทำเช่นนี้กับ ปรากฎว่าฉันต้องการpip3:

sudo pip3 install Django

ทำเคล็ดลับ

คุณอาจต้องรับ pip3 โดย:

sudo apt-get install python3-pip

3

เพิ่ม Django สำหรับ Python3 แล้ว ดังนั้นเพียงแค่พิมพ์เทอร์มินัล:

apt-get install python3-django


1
E: Unable to locate package python3-django
Jonathan

1
มันไม่พร้อมใช้งานสำหรับ Ubuntu 14.04 Trusty Tahr
อันวาร์

1
ฉันไม่แนะนำให้ใช้ django ระบบ repos หากจะมีการอัปเดตความสามารถบางอย่างที่คุณใช้อาจไม่ทำงานหลังจากการอัปเดต ควรใช้วิธี virtual-env ดังที่แสดงด้านบน
0xAffe

ฉันเป็น Debian ล่าสุด (8, up-to-date) และ Django 1.7.11 (ซึ่งเป็น EOL!) เป็นเวอร์ชันล่าสุดที่มีอยู่ในที่เก็บ ดูเหมือนว่า Ubuntu จะมีรุ่นที่รองรับ (1.8.7) ฉันสงสัยว่าทำไม Debian ถึงล้าหลัง?
Hydraxan14 14

3

พวกมันมีวิธีที่ง่ายในการใช้virtualenvwrapperโดยที่ง่ายที่สุดในการจัดการสภาพแวดล้อมเสมือน Python 2.7 / 3.x ใน Ubuntu / Debian

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

สามารถเลือกที่--system-site-packagesจะนำแพคเกจไซต์ส่วนกลางมาใช้ซ้ำได้
virtualenvติดตั้ง pip และเครื่องมือตั้งค่า python อื่น ๆ เพื่อช่วยให้เราเริ่มต้นได้อย่างรวดเร็ว

$ pip install Django
$ pip install -r requirements.txt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.