Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะใช้โมดูลหลามระยะไกลได้อย่างไร?


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

$ pip install knockout

ตอนนี้เพื่อนำเข้าโมดูลจากระยะไกล คุณสามารถใช้สิ่งที่น่าพิศวงเช่น:

>>> from knockout import urlimport
>>> urlimport.register()
Url importing enabled. Add urls to sys.path.

URL ที่ถูกต้องมีลักษณะดังนี้:https://example.com/path/to/repository/#packagename

สิ่งนี้เป็นการทดลอง ใช้โดยยอมรับความเสี่ยงเอง เพลิดเพลิน

>>> import sys
>>> sys.path.insert(0, 'https://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.8/#BeautifulSoup')
>>> import BeautifulSoup
...
>>> BeautifulSoup
<module 'BeautifulSoup' from 'https://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.8/BeautifulSoup.py'>

หากคุณไม่สามารถติดตั้งโมดูลบนเครื่องได้ (เนื่องจากไม่มีสิทธิ์เพียงพอ) คุณสามารถใช้ virtualenv หรือบันทึกไฟล์โมดูลในไดเร็กทอรีอื่นและใช้โค้ดต่อไปนี้เพื่อให้ Python ค้นหาโมดูลในโมดูลที่กำหนดได้:

>>> import os, sys
>>> file_path = 'AdditionalModules/'
>>> sys.path.append(os.path.dirname(file_path))
>>> # Now python also searches AdditionalModules folder for importing modules as we have set it on the PYTHONPATH.

คุณยังสามารถใช้ virtualenv เพื่อสร้างสภาพแวดล้อม Python แบบแยกส่วนได้ ปัญหาพื้นฐานที่กำลังได้รับการแก้ไขคือหนึ่งในการอ้างอิงและเวอร์ชัน และการอนุญาตทางอ้อม ลองนึกภาพว่าคุณมีแอปพลิเคชันที่ต้องการ LibFoo เวอร์ชัน 1 แต่แอปพลิเคชันอื่นต้องใช้เวอร์ชัน 2 คุณจะใช้แอปพลิเคชันทั้งสองนี้ได้อย่างไร หากคุณติดตั้งทุกอย่างลงใน /usr/lib/python2.7/site-packages (หรือตำแหน่งมาตรฐานของแพลตฟอร์มใดก็ตาม) เป็นเรื่องง่ายที่จะจบลงในสถานการณ์ที่คุณอัปเกรดแอปพลิเคชันที่ไม่ควรอัปเกรดโดยไม่ได้ตั้งใจ สามารถใช้ในกรณีการใช้งานของเราที่เราไม่สามารถติดตั้งแพ็คเกจบนเครื่องได้เนื่องจากเราไม่มีสิทธิ์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ virtual env อ่านเอกสาร:https://virtualenv.pypa.io/en/stable/