จะตั้งค่า elpy เพื่อใช้ python3 ได้อย่างไร


22

เมื่อตั้งค่า emacs ของฉันสำหรับสภาพแวดล้อมการทำงานใหม่ฉันไม่สามารถรับการกำหนดค่า elpy ให้ใช้ python 3 ได้อย่างถูกต้องฉันได้ติดตั้งแพ็คเกจที่จำเป็นทั้งหมด/usr/local/binแล้วและติดตั้งโดยใช้ python3

ตอนนี้เมื่อฉันเรียกใช้ elpy-config ฉันได้รับต่อไปนี้:

Virtualenv........: None
RPC Python........: 2.7.6 (/usr/bin/python)
Interactive Python: python (/usr/bin/python)
Emacs.............: 24.5.1
Elpy..............: 1.9.0
Jedi..............: 0.9.0
Rope..............: Not found (0.10.2 available)
Importmagic.......: 0.1.3
Autopep8..........: 0.1.3
Syntax checker....: Not found (pyflakes)

ฉันต้องการให้ RPC Python เป็น ipython3 และอินเทอร์แอคทีฟเหมือนกัน สำหรับจุดประสงค์ของคำถามนี้ให้ถือว่าไฟล์. emac ของฉันว่างเปล่า


ฉันหวังว่าคุณหมายถึง / usr / local / bin
user151019

คำตอบ:


16

คุณสามารถกำหนดelpy-rpc-python-commandค่า ถ้าคุณต้องการ Python3 คุณสามารถตั้งค่านี้ได้

(setq elpy-rpc-python-command "python3")

ปรับปรุง

สร้าง python3 virtualenv โดยใช้ virtualenvwrapper จากเทอร์มินัล

$ mkvirtualenv test -p /usr/bin/python3

จากนั้นติดตั้งแพคเกจที่จำเป็น

$ pip install rope jedi importmagic autopep8 flake8

ตอนนี้ไปที่ emacs เปิดใช้งาน virtualenv และเรียกใช้ M-x elpy-config

M-x pyvenv-workon test
M-x elpy-config

หากคุณต้องการipythonเป็น REPL ของคุณคุณสามารถใส่ฟังก์ชั่นนี้ในการกำหนดค่า

(elpy-use-ipython)

หรือ

(elpy-use-ipython "python3")

หมายเหตุ: elpy-use-ipythonเลิกใช้แล้ว ใช้

(setenv "IPY_TEST_SIMPLE_PROMPT" "1")
(setq python-shell-interpreter "ipython3"
      python-shell-interpreter-args "-i")

หรือipythonตามเวอร์ชั่นของคุณ


เมื่อทำสิ่งนี้แล้วกลับไปที่การตั้งค่าบอกว่า python3 ไม่เป็นที่รู้จักและตอนนี้เจได, Importmagic และ autopep8 ถูกทำเครื่องหมายเป็นnot found
adam

python3คุณต้องกำหนดเส้นทางที่เต็มไปด้วย /usr/bin/python3หากคุณกำลังใช้อูบุนตูคุณสามารถใช้ ไม่ว่าในกรณีใดจะเป็นการดีกว่าถ้าคุณสร้าง python3 virtual env เปิดใช้งาน env นั้นและติดตั้งแพ็คเกจเหล่านั้น อัปเดตคำตอบ
ChillarAnand

2
หากคุณมี ipython ติดตั้งสำหรับ Python2 และ ipython3 ติดตั้งสำหรับ Python3 คุณสามารถใช้ ipython3 REPL โดย(elpy-use-ipython "ipython3")สมมติว่าอยู่ในเส้นทางของคุณ
Viktor Haag

1
(elpy-use-ipython)เลิกใช้แล้ว; ดูelpy.readthedocs.io/en/latest/ide.html#interpreter-setup
BallpointBen

4

คุณสามารถแก้ไขปัญหานี้ได้ด้วยการแก้ไขการกำหนดค่าของ python shell จาก python เป็น python3 ใน elpy-config

  1. M-x elpy-config เพื่อเข้าสู่หน้าการกำหนดค่าของ elpy
  2. หากคุณเลื่อนลงคุณจะเห็นกลุ่มที่มีเครื่องหมาย [+] สลับหนึ่ง Python และค้นหาตัวเลือก shell interpreter: Option Python Shell Interpreterเป็นกลุ่มที่คุณกำลังมองหา
  3. หากคุณคลิก (หรือ Enter in version terminal) ที่ปุ่มตัวเลือกคุณจะสามารถแก้ไขส่วน "python" เป็น "python3"
  4. ใช้และบันทึกและรีสตาร์ท emacs

ผมทำอย่างนี้และไม่เปิดมันบอกว่ามันไม่สามารถหาelpy-config python3อย่างไรก็ตามpython3 อยู่ในเส้นทางของฉันเพราะฉันสามารถออกมันเป็นคำสั่งใน terminal ไม่มีปัญหา ด้วยเหตุผลบางอย่าง emacs ไม่ได้จับภาพเส้นทางของฉันทั้งหมด นี่เป็นคุณสมบัติหรือข้อบกพร่องหรือไม่? ฉันสังเกตเห็นมันในแพ็คเกจอื่น ๆ ที่ต้องการเชลล์ที่ด้อยกว่าเช่นกัน
xdavidliu

ไม่เคยใจฉันใน OSX และการใช้ emacs กุยและมี gotcha ดีจริงๆที่นี่ที่ emacs GUI (เมื่อเทียบกับ emacs Terminal) ไม่จับตัวแปรเส้นทางของฉัน
xdavidliu

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