คำถามติดแท็ก python-import

สำหรับคำถามเกี่ยวกับการนำเข้าโมดูลใน Python

5
วิธีตรวจสอบว่ามีการนำเข้าโมดูล python หรือไม่?
ฉันจะตรวจสอบได้อย่างไรว่าฉันนำเข้าโมดูลที่ใดที่หนึ่งในโค้ด if not has_imported("somemodule"): print('you have not imported somemodule') เหตุผลที่ฉันต้องการตรวจสอบว่าฉันได้นำเข้าโมดูลแล้วหรือยังเพราะฉันมีโมดูลที่ฉันไม่ต้องการนำเข้าเพราะบางครั้งมันทำให้โปรแกรมของฉันยุ่ง

8
การนำเข้ารายการค่าคงที่แบบยาวไปยังไฟล์ Python
ใน Python มีอะนาล็อกของCคำสั่งพรีโปรเซสเซอร์เช่นหรือไม่: #define MY_CONSTANT 50 นอกจากนี้ฉันมีรายการค่าคงที่จำนวนมากที่ฉันต้องการนำเข้าในหลายชั้นเรียน มีอะนาล็อกของการประกาศค่าคงที่เป็นลำดับคำสั่งที่ยาวเหมือนข้างบนใน.pyไฟล์และนำเข้า.pyไฟล์อื่นหรือไม่? แก้ไข. ไฟล์Constants.pyอ่าน: #!/usr/bin/env python # encoding: utf-8 """ Constants.py """ MY_CONSTANT_ONE = 50 MY_CONSTANT_TWO = 51 และmyExample.pyอ่าน: #!/usr/bin/env python # encoding: utf-8 """ myExample.py """ import sys import os import Constants class myExample: def __init__(self): self.someValueOne = Constants.MY_CONSTANT_ONE + 1 self.someValueTwo = …

4
วิธี "นำเข้าใหม่" โมดูลไปยัง python จากนั้นโค้ดจะถูกเปลี่ยนหลังจากนำเข้า
ฉันมี foo.py def foo(): print "test" ใน IPython ฉันใช้: In [6]: import foo In [7]: foo.foo() test จากนั้นฉันเปลี่ยนเป็นfoo(): def foo(): print "test changed" ใน IPython ผลลัพธ์ของการเรียกใช้ยังคงเป็นtest: In [10]: import foo In [11]: foo.foo() test จากนั้นฉันใช้: In [15]: del foo In [16]: import foo In [17]: foo.foo() test ฉันลบfoo.pycในโฟลเดอร์เดียวกันfoo.pyแล้ว แต่ยังไม่มีโชค ฉันขอทราบวิธีการนำเข้าโค้ดที่อัปเดตในรันไทม์ได้หรือไม่

4
ทำไมบางครั้งโมดูล Python จึงไม่นำเข้าโมดูลย่อย
วันนี้ฉันสังเกตเห็นบางอย่างแปลก ๆ ฉันอยากจะอธิบาย ฉันไม่แน่ใจ 100% ว่าจะใช้วลีนี้เป็นคำถามได้อย่างไร Google จึงไม่ต้องสงสัย โมดูลการบันทึกไม่สามารถเข้าถึงการบันทึกโมดูลตัวจัดการด้วยเหตุผลแปลก ๆ ลองด้วยตัวคุณเองถ้าคุณไม่เชื่อฉัน: >>> import logging >>> logging.handlers Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'handlers' >>> import logging.handlers >>> logging.handlers <module 'logging.handlers' from '/usr/lib/python2.6/logging/handlers.pyc'> ใครสามารถอธิบายได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น?

3
Absolute เทียบกับการนำเข้าแบบสัมพัทธ์อย่างชัดเจนของโมดูล Python
ฉันสงสัยเกี่ยวกับวิธีการนำเข้าแพ็คเกจในแอปพลิเคชัน Python ที่ต้องการ ฉันมีโครงสร้างแพ็คเกจดังนี้: project.app1.models project.app1.views project.app2.models project.app1.viewsการนำเข้าproject.app1.modelsและproject.app2.models. มีสองวิธีในการทำสิ่งนี้ที่ควรคำนึงถึง ด้วยการนำเข้าที่แน่นอน: import A.A import A.B.B หรือด้วยการนำเข้าสัมพัทธ์อย่างชัดเจนดังที่แนะนำในPython 2.5 ที่มี PEP 328 : # explicit relative from .. import A from . import B วิธีที่ยิ่งใหญ่ที่สุดในการทำเช่นนี้คืออะไร?

3
เหตุใดจึงต้องใช้ sys.path.append (path) แทน sys.path.insert (1, path)
แก้ไข:ขึ้นอยู่กับความคิดเห็น Ulf Rompe ของมันเป็นสิ่งสำคัญที่คุณใช้ "1" แทน "0"มิฉะนั้นคุณจะทำลายsys.path ฉันทำ python มาระยะหนึ่งแล้ว (มากกว่าหนึ่งปี) และฉันมักจะสับสนว่าทำไมคนถึงแนะนำให้คุณใช้sys.path.append()แทนsys.path.insert(). ให้ฉันสาธิต สมมติว่าฉันกำลังทำงานกับโมดูลชื่อ PyWorkbooks (ซึ่งติดตั้งบนคอมพิวเตอร์ของฉัน) แต่ฉันกำลังทำงานกับโมดูลอื่นพร้อมกัน (สมมติว่า PyJob) ที่รวม PyWorkbooks ขณะที่ฉันทำงานกับ PyJob ฉันพบข้อผิดพลาดใน PyWorkbooks ซึ่งฉันกำลังแก้ไขดังนั้นฉันจึงต้องการนำเข้าเวอร์ชันสำหรับการพัฒนา มีหลายวิธีในการทำงานทั้งสองอย่าง (เช่นฉันสามารถวางโครงการ PyWorkbooks ไว้ใน PyJob ได้) แต่บางครั้งฉันก็ยังต้องเล่นกับเส้นทาง อย่างไรก็ตามฉันไม่สามารถทำsys.path.append()กับโฟลเดอร์ที่ PyWorkbooks อยู่ได้ ทำไม? เพราะ python จะค้นหา PyWorkbooks ที่ติดตั้งไว้ก่อน! นี่คือเหตุผลที่คุณต้องทำ sys.path.insert (1, path_to_dev_pyworkbooks) สรุป: sys.path.append(path_to_dev_pyworkbooks) import PyWorkbooks …

7
การติดตั้งโมดูล lxml ใน python
ขณะเรียกใช้สคริปต์ python ฉันได้รับข้อผิดพลาดนี้ from lxml import etree ImportError: No module named lxml ตอนนี้ฉันพยายามติดตั้ง lxml sudo easy_install lmxl แต่มันทำให้ฉันมีข้อผิดพลาดต่อไปนี้ Building lxml version 2.3.beta1. NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. ERROR: /bin/sh: xslt-config: not found ** make sure the development packages of libxml2 and libxslt are …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.