Score:4

ใช้โปรแกรม Python2 กับ Python3 หรือไม่

ธง be

แก้ไข: การอัปเดตด้านล่าง ทิวทัศน์ดูเหมือนจะเปลี่ยนไปอย่างมาก


ฉันมี Ubuntu 20.04 และติดตั้ง Python 3.10 ด้วยตนเอง มี python 2 อยู่ในระบบแล้ว และนั่นคือสิ่งที่ฉันได้รับหากฉันดำเนินการ หลาม ที่บรรทัดคำสั่งมากกว่า หลาม3. อย่างไรก็ตาม ดูเหมือนว่าฉันจะมี pip เวอร์ชันเฉพาะสำหรับ python3 เท่านั้น

ฉันมีโปรแกรมที่ฉันต้องการเรียกใช้ (เจี๊ยบ) ซึ่งเขียนด้วย python2 มันบ่นว่าขาดห้องสมุดอนุกรม:

$ ./เจี๊ยบ
Traceback (การโทรครั้งล่าสุดล่าสุด):
  ไฟล์ "./chirpw" บรรทัดที่ 24 ใน <โมดูล>
    จากการนำเข้า chirp.drivers *
  ไฟล์ "/home/simon/chirp-daily-20220103/chirp/drivers/idrp.py" บรรทัดที่ 16 ใน <โมดูล>
    นำเข้าซีเรียล
ImportError: ไม่มีโมดูลชื่อซีเรียล

อย่างไรก็ตาม หากฉันพยายามรับโมดูลนี้ด้วย pip ฉันจะลงเอยด้วยการเรียกใช้ pip3 และได้รับเวอร์ชัน python3 ของโมดูลนี้

ฉันควรทำอย่างไรเกี่ยวกับการเพิ่มไลบรารีใน python2 โดยเฉพาะ (และตรวจสอบให้แน่ใจว่าไลบรารีที่ดึงมาคือไลบรารี python2)

ฉันคิดว่าวิธีที่ "ดีที่สุด" คือการสร้างสภาพแวดล้อมเสมือนจริงโดยเฉพาะสำหรับโปรแกรมนี้โดยเฉพาะ แต่ฉันไม่รู้ว่าจะทำอย่างไรในกรณีของโปรแกรมที่มีอยู่แล้วเช่นกัน

ตัวชี้ใด ๆ ที่ยอมรับอย่างสุดซึ้ง


แก้ไข. ฉันพบหน้านี้: การตั้งค่า pipenv และสภาพแวดล้อมเสมือน และดูเหมือนว่าฉันจะก้าวไปข้างหน้า ตอนนี้ฉันดูเหมือนจะมีสภาพแวดล้อมเสมือนจริงที่สร้างขึ้นรอบ ๆ /usr/bin/python (ซึ่งก็คือ python2.7) และใช้งาน pip -install serial ได้ อย่างไรก็ตาม หลังจากทำสิ่งนี้ มันบ่นว่าไม่พบโมดูล gtk และความพยายามที่จะโหลดโมดูลนั้นล้มเหลวโดยบอกว่าไม่มีโมดูลดังกล่าว:

(venv) :~/chirp-daily-20220103$ python -m pip ติดตั้ง gtk
คัดค้าน:[...]
ข้อผิดพลาด: ไม่พบเวอร์ชันที่ตรงตามข้อกำหนด gtk (จากเวอร์ชัน: ไม่มี)
ข้อผิดพลาด: ไม่พบการกระจายที่ตรงกันสำหรับ gtk

ต่อไปฉันลองใช้เวอร์ชัน flatpak แต่ flatpak ไม่ทำงานสำหรับฉันเลยฉันจะเปิดคำถามอื่นเกี่ยวกับเรื่องนั้น เนื่องจากตอนนี้เราออกจากหัวข้อคำถามเดิมของฉันไปแล้ว

ขอบคุณทุกคนที่พยายามช่วย :)

Dave avatar
za flag
ตรวจสอบคำตอบนี้เพื่อเพิ่ม pip สำหรับแพ็คเกจ python 2.7 ที่ไม่รวมอยู่ใน Ubuntu 20.04 https://stackoverflow.com/a/64297311/4576663
be flag
@Dave ใช่ ฉันทำการติดตั้งด้วยตนเองจากซอร์สแพ็กเกจและ "คำแนะนำ" พูดง่ายๆ ว่า ./chirpw ควรใช้งานได้ แต่ใช้งานไม่ได้
Dave avatar
za flag
ใช่ ฉันอ่านมันแล้วขุดรหัสและรู้ว่ามันกำลังรัน python2 อยู่ ฉันคิดว่ามันเป็น pip ที่ขาดหายไปสำหรับ python2 ดูความคิดเห็นด้านบนของฉันสำหรับลิงก์สำหรับความช่วยเหลือในการติดตั้ง
Dave avatar
za flag
"อย่างไรก็ตาม หลังจากทำสิ่งนี้ ตอนนี้มันบ่นว่าไม่พบโมดูล gtk" ใช่ ฉันพัฒนา pygobject (gtk) มากมายใน python และการเข้าถึง gtk จากภายใน venv มาพร้อมกับฝันร้ายของมันเอง มันอยู่นอกบ้านล้อของฉันเพื่อช่วยให้คุณดำเนินการได้ในสภาพแวดล้อมนั้น
Score:1
ธง zw

อย่างที่เราทราบกันดีอยู่แล้ว เจี๊ยบ มีให้เป็น Flatpak และวิธีการติดตั้งนี้ด้วย ง่ายกว่า.

แต่ถ้าคุณยังต้องการติดตั้งต่อจากแหล่ง tar-ball ให้ใช้คำสั่งด้านล่าง:

sudo apt-get อัปเดต
sudo apt-get ติดตั้ง python2 python2-dev python-is-python2

ซีดี ~/ดาวน์โหลด
# สามคำสั่งด้านล่างจะดาวน์โหลดแพ็คเกจเก่าจากที่เก็บ 18.04 LTS
wget -c http://archive.ubuntu.com/ubuntu/pool/main/p/pyserial/python-serial_3.4-2_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-5.1ubuntu2_amd64.deb
sudo apt-get install ./python-serial_3.4-2_all.deb ./python-gtk2_2.24.0-5.1ubuntu2_amd64.deb

wget -c https://trac.chirp.danplanet.com/chirp_daily/LATEST/chirp-daily-20220103.tar.gz
tar -xf chirp-daily-20220103.tar.gz
cd เจี๊ยบ-รายวัน-20220103/
sudo python2 setup.py ติดตั้ง

จากนั้นเปิด CHIRP จากแอปพลิเคชันหรือเมนูเร็ว

be flag
นี่เป็นสิ่งที่ยอดเยี่ยมสำหรับทุกคนที่ flatpak ใช้งานได้ น่าเศร้าที่ตัว Flatpak เองล้มเหลวในระดับพื้นฐานที่สุดสำหรับฉัน และมันไม่ชัดเจนว่าทำไม
Score:0
ธง cn

คุณสามารถเรียกใช้ pip ผ่าน Python โดยทำ หลาม -m pip. ซึ่งจะเรียกใช้เวอร์ชัน Python 2 ตัวอย่างเช่น ถ้า หลาม ไปที่ Python 2 และคุณต้องการใช้เวอร์ชัน Python 2 ของ pip เพื่อติดตั้ง พีซีเรียล ห้องสมุด คุณสามารถทำได้:

$ python -m pip ติดตั้ง pyserial

เพื่อทำความเข้าใจว่ากำลังทำอะไรอยู่ ดู หลาม manpage

-m ชื่อโมดูล
       ค้นหา sys.path สำหรับโมดูลที่มีชื่อและเรียกใช้
       ไฟล์ .py ที่เกี่ยวข้องเป็นสคริปต์
Dave avatar
za flag
สิ่งนี้ถือว่า OP มี pip สำหรับ python2 ติดตั้งอยู่ หากไม่มี สิ่งนี้จะไม่ทำงาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา