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

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

18
ใช้ 'โมดูลนำเข้า' หรือ 'จากโมดูลนำเข้า' หรือไม่
ฉันพยายามค้นหาคำแนะนำที่ครอบคลุมว่าควรใช้import moduleหรือfrom module importไม่? ฉันเพิ่งเริ่มต้นด้วย Python และฉันพยายามเริ่มด้วยแนวทางปฏิบัติที่ดีที่สุดในใจ โดยพื้นฐานแล้วฉันหวังว่าถ้ามีใครสามารถแบ่งปันประสบการณ์ของพวกเขานักพัฒนารายอื่น ๆ ที่มีความพึงพอใจและสิ่งที่เป็นวิธีที่ดีที่สุดที่จะหลีกเลี่ยงgotchasตามถนน?

7
สร้าง requirements.txt โดยอัตโนมัติ
บางครั้งฉันดาวน์โหลดซอร์สโค้ดหลามจากgithubและไม่รู้วิธีติดตั้งการพึ่งพาทั้งหมด หากไม่มีrequirements.txtไฟล์ฉันต้องสร้างมันด้วยมือ คำถามคือ: กำหนดไดเรกทอรีซอร์สของไพ ธ อนมันเป็นไปได้ที่จะสร้างrequirements.txtโดยอัตโนมัติจากส่วนนำเข้าหรือไม่?

18
จะโหลดโมดูลทั้งหมดในโฟลเดอร์ได้อย่างไร?
ใครช่วยให้ฉันมีวิธีที่ดีในการนำเข้าไดเรกทอรีทั้งหมดของโมดูล? ฉันมีโครงสร้างเช่นนี้: /Foo bar.py spam.py eggs.py ฉันพยายามแปลงเป็นแพ็คเกจด้วยการเพิ่ม__init__.pyและทำfrom Foo import *แต่มันก็ไม่ทำงานอย่างที่ฉันหวังไว้


6
ModuleNotFoundError: มันหมายความว่าอะไร __main__ ไม่ใช่แพ็คเกจ?
ฉันพยายามเรียกใช้โมดูลจากคอนโซล โครงสร้างของไดเรกทอรีของฉันคือ: ฉันพยายามเรียกใช้โมดูลp_03_using_bisection_search.pyจากproblem_set_02ไดเรกทอรีโดยใช้: $ python3 p_03_using_bisection_search.py รหัสภายในp_03_using_bisection_search.pyคือ: __author__ = 'm' from .p_02_paying_debt_off_in_a_year import compute_balance_after def compute_bounds(balance: float, annual_interest_rate: float) -> (float, float): # there is code here, but I have omitted it to save space pass def compute_lowest_payment(balance: float, annual_interest_rate: float) -> float: # there is code here, but I …

11
การนำเข้าแพ็คเกจพี่น้อง
ฉันได้ลองอ่านคำถามเกี่ยวกับการนำเข้าของพี่น้องและแม้แต่ เอกสารแพคเกจแต่ฉันยังไม่พบคำตอบ ด้วยโครงสร้างต่อไปนี้: ├── LICENSE.md ├── README.md ├── api │ ├── __init__.py │ ├── api.py │ └── api_key.py ├── examples │ ├── __init__.py │ ├── example_one.py │ └── example_two.py └── tests │ ├── __init__.py │ └── test_one.py สคริปต์ใน examplesและtestsไดเรกทอรีสามารถนำเข้าจาก apiโมดูลและสามารถเรียกใช้จาก commandline ได้อย่างไร นอกจากนี้ฉันต้องการหลีกเลี่ยงการsys.path.insertแฮ็กที่น่าเกลียดสำหรับทุกไฟล์ แน่นอนสิ่งนี้สามารถทำได้ใน Python ใช่ไหม

29
ข้อผิดพลาดการนำเข้า django - ไม่มีโมดูลชื่อ core.management
ตกลงฉันเห็นข้อผิดพลาดมากมายรอบตัว ฉันได้ลองทุกอย่างที่ฉันรู้แล้วและยังไม่เข้าใจ ฉันกำลังทำงานบนเซิร์ฟเวอร์การพัฒนาที่ใช้ python 2.5 และ Django 1.3 Django 1.3 ได้รับการติดตั้งโดยใช้ python setup.py ติดตั้งหลังจากคลายการดาวน์โหลด tar.gz ทุกอย่างทำงานได้ดีฉันแทบจะไม่จำเป็นต้องเรียกใช้manage.pyแต่ฉันกำลังพยายามใช้แอพ staticfiles ใหม่และกำลังประสบปัญหา python manage.py collectstatic Traceback (most recent call last): File "manage.py", line 2, in <module> from django.core.management import execute_manager ImportError: No module named core.management ตกลงดังนั้นฉันมีPATHปัญหา จากDjango ติดตั้งฉันตรวจสอบsite-packagesไดเรกทอรีของฉันอีกครั้ง python -c "from distutils.sysconfig import get_python_lib; …

13
วิธีตรวจสอบว่ามีโมดูลหลามอยู่หรือไม่โดยไม่ต้องนำเข้า
ฉันจำเป็นต้องรู้ว่ามีโมดูลหลามอยู่หรือไม่โดยไม่ต้องนำเข้า การนำเข้าสิ่งที่อาจไม่มีอยู่ (ไม่ใช่สิ่งที่ฉันต้องการ): try: import eggs except ImportError: pass

12
การนำเข้าสัมพัทธ์ - ModuleNotFoundError: ไม่มีโมดูลชื่อ x
นี่เป็นครั้งแรกที่ฉันได้นั่งลงและลองใช้ python 3 และดูเหมือนจะล้มเหลวอย่างน่าสังเวช ฉันมีสองไฟล์ต่อไปนี้: test.py config.py config.py มีฟังก์ชั่นบางอย่างที่กำหนดไว้ในนั้นรวมถึงตัวแปรบางอย่าง ฉันได้แยกมันออกเป็น: config.py debug = True test.py import config print (config.debug) ฉันยังมี __init__.py อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้: ModuleNotFoundError: No module named 'config' ฉันทราบว่าอนุสัญญา py3 นั้นใช้การนำเข้าแบบสัมบูรณ์: from . import config อย่างไรก็ตามสิ่งนี้นำไปสู่ข้อผิดพลาดต่อไปนี้: ImportError: cannot import name 'config' ดังนั้นฉันจะสูญเสียว่าจะทำอย่างไรที่นี่ ... ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก :)

9
ทำไมไพ ธ อนจึงรันโมดูลเมื่อฉันนำเข้ามันและฉันจะหยุดมันได้อย่างไร
ฉันมีโปรแกรม Python ฉันกำลังสร้างที่สามารถเรียกใช้ในสองวิธี: แรกคือการเรียกว่า "python main.py" ซึ่งจะแจ้งให้ผู้ใช้สำหรับการป้อนข้อมูลในลักษณะที่เป็นมิตรแล้วเรียกใช้การป้อนข้อมูลของผู้ใช้ผ่านโปรแกรม อีกวิธีหนึ่งคือการเรียก "python batch.py -file- " ซึ่งจะผ่านการรวบรวมอินพุตที่เป็นมิตรทั้งหมดและเรียกใช้ค่าอินพุตทั้งหมดของไฟล์ผ่านโปรแกรมในครั้งเดียว ปัญหาคือเมื่อฉันรัน "batch.py" มันจะนำเข้าตัวแปร / methods / etc บางอย่างจาก "main.py" และเมื่อมันรันรหัสนี้: import main ที่บรรทัดแรกของโปรแกรมจะเกิดข้อผิดพลาดทันทีเนื่องจากพยายามเรียกใช้รหัสใน "main.py" ฉันจะหยุด Python ไม่ให้รันโค้ดที่อยู่ในโมดูล "main" ที่ฉันกำลังนำเข้าได้อย่างไร

6
วิธีที่ถูกต้องในการจัดเรียง Python `import x` และ` จาก x import y` statement คืออะไร?
คู่มือสไตล์หลามแนะนำให้การนำเข้ากลุ่มเช่นนี้ การนำเข้าควรจัดกลุ่มตามลำดับต่อไปนี้: การนำเข้าไลบรารีมาตรฐาน การนำเข้าของบุคคลที่สามที่เกี่ยวข้อง การนำเข้าเฉพาะแอปพลิเคชัน / ไลบรารีเฉพาะที่ อย่างไรก็ตามไม่ได้พูดถึงสิ่งที่ควรนำมาใช้ในการกำหนดวิธีการนำเข้าสองวิธี: from foo import bar import foo มีหลายวิธีในการจัดเรียง (สมมติว่าการนำเข้าทั้งหมดอยู่ในกลุ่มเดียวกัน): ก่อนfrom..importอื่นimport from g import gg from x import xx import abc import def import x ก่อนimportอื่นfrom..import import abc import def import x from g import gg from x import xx เรียงตามตัวอักษรตามชื่อโมดูลโดยไม่สนใจชนิดของการนำเข้า import abc import …

10
วิธีโหลดคลาส Python แบบไดนามิก
รับสตริงของคลาส Python เช่นmy_package.my_module.MyClassวิธีที่ดีที่สุดในการโหลดมันคืออะไร? ในคำอื่น ๆ ฉันกำลังมองหาเทียบเท่าClass.forName()ใน Java ฟังก์ชั่นใน Python มันต้องทำงานกับ Google App Engine สิ่งนี้จะเป็นฟังก์ชั่นที่ยอมรับ FQN ของคลาสเป็นสตริงและส่งคืนการอ้างอิงไปยังคลาส: my_class = load_class('my_package.my_module.MyClass') my_instance = my_class()

2
__future__ นำเข้า absolute_import ทำอะไรได้จริง
ฉันได้ตอบคำถามเกี่ยวกับการนำเข้าแบบสัมบูรณ์ใน Python ซึ่งฉันคิดว่าฉันเข้าใจโดยอ้างอิงจากการอ่านPython 2.5 changelogและPEP ที่มาพร้อมกัน อย่างไรก็ตามเมื่อติดตั้ง Python 2.5 และพยายามสร้างตัวอย่างของการใช้อย่างถูกต้องfrom __future__ import absolute_importฉันรู้ว่าสิ่งต่าง ๆ ไม่ชัดเจนนัก ตรงจากรายการเชื่อมโยงข้างต้นคำสั่งนี้สรุปความเข้าใจของฉันเกี่ยวกับการเปลี่ยนแปลงการนำเข้าแบบสัมบูรณ์: สมมติว่าคุณมีไดเรกทอรีแพ็คเกจเช่นนี้: pkg/ pkg/__init__.py pkg/main.py pkg/string.py สิ่งนี้จะกำหนดแพ็คเกจpkgที่มีชื่อpkg.mainและpkg.stringsubmodules พิจารณารหัสในโมดูล main.py จะเกิดอะไรขึ้นถ้ามันประมวลผลคำสั่งimport string? ใน Python 2.4 และรุ่นก่อนหน้ามันจะดูในไดเรกทอรีของแพ็คเกจเพื่อดำเนินการนำเข้าแบบสัมพัทธ์ค้นหา pkg / string.py นำเข้าเนื้อหาของไฟล์นั้นเป็นpkg.stringโมดูลและโมดูลนั้นถูกผูกไว้กับชื่อ"string"ในpkg.mainเนมสเปซของโมดูล ดังนั้นฉันจึงสร้างโครงสร้างไดเรกทอรีที่แน่นอนนี้: $ ls -R .: pkg/ ./pkg: __init__.py main.py string.py __init__.pyและstring.pyว่างเปล่า main.pyมีรหัสต่อไปนี้: import string print string.ascii_uppercase …


7
วิธีการจำลองการนำเข้า
โมดูลAรวมimport Bที่ด้านบน อย่างไรก็ตามภายใต้เงื่อนไขการทดสอบผมอยากจะเยาะเย้ย BในA(จำลองA.B) Bและสมบูรณ์ละเว้นจากการนำเข้า ในความเป็นจริงBไม่ได้ติดตั้งในสภาพแวดล้อมการทดสอบตามวัตถุประสงค์ Aเป็นหน่วยที่อยู่ภายใต้การทดสอบ ฉันต้องนำเข้าAพร้อมฟังก์ชั่นทั้งหมดของมัน Bเป็นโมดูลที่ฉันต้องเยาะเย้ย แต่ฉันจะเยาะเย้ยBภายในAและหยุดAจากการนำเข้าจริงBถ้าสิ่งแรกที่Aทำก็คือนำเข้าB? (เหตุผลที่ยังไม่ได้ติดตั้ง B คือฉันใช้ pypy สำหรับการทดสอบอย่างรวดเร็วและน่าเสียดายที่ B ยังไม่สามารถใช้งานร่วมกับ pypy ได้) สิ่งนี้จะเกิดขึ้นได้อย่างไร?

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