เสียงเรียกเข้าที่คอมไพล์ด้วย python3 แต่มี ('python') ส่งคืนค่า 0


13

ฉันเพิ่งทำตามคำแนะนำเหล่านี้เพื่อคอมไพล์ vim ด้วย python 3: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

หลังจากการติดตั้งฉันตรวจสอบเพื่อดูว่าฉันมี python3:

vim --version | grep "python"

ซึ่งส่งคืน:

+python3/dyn  

และ

+python/dyn  

แต่เมื่อฉันเริ่มเป็นกลุ่มและพิมพ์หนึ่งในคำสั่ง followinf ฉันได้รับ0:

  • :echo has('python3/dyn')
  • :echo has('python3')
  • :echo has('python')
  • :echo has('python/dyn')

มีใครมีปัญหาที่คล้ายกัน?

แก้ไข: เฮ้พวกความคิดเห็นที่เป็นประโยชน์มากมายฉันแค่อยากจะขอบคุณและให้พวกคุณรู้ว่าฉันทำอะไรเพื่อแก้ไขปัญหานี้ ฉันทำตามคำแนะนำอีกครั้งจากลิงก์แรกที่ฉันให้ไว้ แต่คราวนี้ฉันลบ vim.tiny และแทนที่จะพยายามรับ vim เพื่อสนับสนุนทั้ง python2 และ python3 ฉันเพิ่งสร้างด้วยการสนับสนุน python3 สิ่งนี้แก้ไขได้

การพิมพ์

python3 print("works")

worksในกลุ่มที่แสดงให้เห็น การพิมพ์

echo has('python3')

ให้ผลลัพธ์1และในที่สุด

vim --version | grep python3

ให้คุณค่ากับฉัน +python3

ขอบคุณมากสำหรับความช่วยเหลือและคำแนะนำทั้งหมด !!


ลองใช้คำสั่ง Python ที่แท้จริงเช่น:python print "works"; นั่นคือการทดสอบที่ดีที่สุด (อย่างน้อยก็แบบโต้ตอบในสคริปต์ที่ฉันต้องการhas('python')ซึ่งควรใช้งานได้)
Ingo Karkat

หากคุณใช้งาน Ubuntu ให้ใช้ PPA ของ pi-rho ( launchpad.net/~pi-rho/+archive/ubuntu/dev ) มันเป็นกลุ่มที่สร้างขึ้นด้วยการสนับสนุน Python / Python3 แบบไดนามิก
muru

มันก็ใช้ได้สำหรับฉันด้วย!
Enrico Maria De Angelis

คำตอบ:


4

นี่คือผลลัพธ์ที่คาดหวัง มีการทดสอบไม่มีhas('python/dyn')และhas('python3/dyn')เพียงและhas('python')has('python3')


5
ยังคงไม่ช่วยถ้าฉันมี ('python3') หรือมี ('python') ฉันยังคงได้รับ 0
user1314272

ประเด็นก็คือว่าคุณไม่สามารถทดสอบหลามแบบไดนามิกที่มีhas()ดังนั้น ... has()ไม่ได้ใช้
romainl

2
@ ฉีดแล้วทำไมมันเป็นคุณสมบัติเอกสารที่สามารถตรวจสอบด้วยhas()ภายใต้:help feature-list?
jamessan

has('python')ผลตอบแทน1สำหรับและ+python +python/dynสิ่งเดียวกันสำหรับhas('python3')และ/+python3 +python3/dynนอกจากนี้has('python/dyn')และhas('python3/dyn')กลับมาเสมอ0ไม่ว่าจะเป็นคุณลักษณะที่มีหรือไม่ สรุป: คุณไม่สามารถใช้has()เพื่อตรวจสอบว่าคุณมี+python[3]/dynหรือไม่มี Sato Katsura และฉันไม่รู้วิธีการจัดรูปแบบอาร์กิวเมนต์อย่างถูกต้อง
romainl

1
แม้ว่ามันจะมีประโยชน์สำหรับ Vim ที่จะสนับสนุนการ/dynตรวจสอบโดยเฉพาะอย่างยิ่งเมื่อhas('python')โหลดไลบรารี Python ซึ่งหมายความว่าคุณจะไม่สามารถใช้งานได้python3และในทางกลับกัน
jamessan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.