ImportError: ไม่มีโมดูลชื่อ bs4 (BeautifulSoup)


141

ฉันทำงานใน Python และใช้ Flask เมื่อฉันเรียกใช้ไฟล์ Python หลักบนคอมพิวเตอร์ของฉันมันทำงานได้อย่างสมบูรณ์ แต่เมื่อฉันเปิดใช้งาน venv และเรียกใช้ไฟล์ Flask Python ในเทอร์มินัลมันขึ้นว่าไฟล์ Python หลักของฉันมี "No Module Named bs4" ความคิดเห็นหรือคำแนะนำใด ๆ จะได้รับการชื่นชมอย่างมาก


3
... คุณติดตั้ง bs4 ใน Virtualenv หรือไม่?
Colin Dunklau

1
ไม่ฉันใช้ ubuntu และใช้ "easy_install beautifulsoup4"
harryt

คำตอบ:


220

เปิดใช้งาน Virtualenv จากนั้นติดตั้ง BeautifulSoup4:

$ pip install BeautifulSoup4

เมื่อคุณติดตั้งbs4กับeasy_installคุณติดตั้งทั้งระบบ ดังนั้น python ระบบของคุณสามารถนำเข้าได้ แต่ไม่ใช่ python Virtualenv ของคุณ หากคุณไม่จำเป็นต้องbs4ติดตั้งในพา ธ python ระบบของคุณให้ถอนการติดตั้งและเก็บไว้ใน Virtualenv ของคุณ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Virtualenvs โปรดอ่านสิ่งนี้


4
ลองนึกภาพ (เพื่อเป็นตัวอย่าง) ว่าคุณกำลังทำงานในโครงการที่ต้องใช้โมดูลเวอร์ชันเฉพาะ นอกจากนี้คุณยังอาจจะมีการทำงานในโครงการที่แตกต่างกันที่ต้องการที่แตกต่างกันรุ่นของโมดูลนี้ หากแต่ละโปรเจ็กต์ตั้งอยู่ใน Virtualenvs คุณจะมีสภาพแวดล้อม python ที่เป็นอิสระสองแบบแทนที่จะมีสภาพแวดล้อม python ของระบบที่มีโมดูลเดียวกันสองเวอร์ชัน ทำให้ระบบของคุณสะอาดอยู่เสมอ ทำงานใน Virtualenvs
Balthazar Rouberol

1
ฉันไม่สามารถติดตั้งได้รับข้อผิดพลาดlocale.Error: unsupported locale settingคุณมีความคิดหรือไม่?
zukijuki

ฉันไม่สามารถเดาได้อย่างแท้จริงหากไม่มีการย้อนกลับ แต่ลองดูที่stackoverflow.com/questions/14547631/…
Balthazar Rouberol

โปรดจำไว้ว่าถ้าคุณใช้ venv คุณต้องใช้ python binary จาก venvนั้น /usr/bin/python(บน Mac OS) ผิด มันควรจะเป็น<your path to your venv>/bin/python
blamblambunny

ฉันต้องออก () Python เพื่อให้การติดตั้ง PIP ทำงานได้ :)
Eoin

56

สำหรับpython2.x :

sudo pip install BeautifulSoup4

สำหรับpython3 :

sudo apt-get install python3-bs4

3
เว็บไซต์อย่างเป็นทางการcrummy.comไม่สามารถระบุpython3-bs4ชื่อแพ็กเกจ
Suraj

2
สำหรับ python 3 ก็sudo pip install BeautifulSoup4ใช้ได้เช่นกัน
ishandutta2007



5

หากคุณใช้ Anaconda ในการจัดการแพ็คเกจสิ่งต่อไปนี้ควรทำ:

conda install -c anaconda beautifulsoup4


1
ตัวเลือก "-c anaconda" เป็นค่าเริ่มต้นดังนั้น "conda install beautifulsoup4" จึงทำเช่นเดียวกันและง่ายต่อการจดจำ :-)
PatrickT

5

ฉันจะแนะนำให้คุณถอนการติดตั้งไลบรารี bs4 โดยใช้คำสั่งนี้:

pip ถอนการติดตั้ง bs4

จากนั้นติดตั้งโดยใช้คำสั่งนี้:

sudo apt-get ติดตั้ง python3-bs4

ฉันประสบปัญหาเดียวกันใน Linux Ubuntu เมื่อฉันใช้คำสั่งต่อไปนี้เพื่อติดตั้งไลบรารี bs4:

pip ติดตั้ง bs4


5

ถ้าคุณใช้Pycharmpreferences - project interpreter - install bs4ไปที่

ถ้าคุณพยายามที่จะติดตั้งBeautifulSoupbs4ก็จะยังคงแสดงให้เห็นว่าโมดูลไม่มีชื่อ




2

ฉันทำตามที่ @ rayid-ali พูดยกเว้นฉันใช้เครื่อง Windows 10 ดังนั้นฉันจึงทิ้ง sudo ไว้ นั่นคือฉันทำสิ่งต่อไปนี้:

python3 -m pip install bs4

และมันทำงานเหมือนงูเหลือม ทำงานอย่างมีเสน่ห์อยู่แล้ว




0

มีการเขียนบทช่วยสอน / การอ้างอิงจำนวนมากสำหรับ Python 2 และบอกให้คุณใช้ pip install somename หากคุณใช้ Python 3 คุณต้องการเปลี่ยนเป็น pip3 install somename


0

คุณอาจต้องการลองติดตั้ง bs4 ด้วย

pip install --ignore-installed BeautifulSoup4

หากวิธีการข้างต้นไม่ได้ผลสำหรับคุณ


0

ลองติดตั้งโมดูลใหม่หรือลองติดตั้งด้วยซุปสวย ๆ ด้วยคำสั่งด้านล่าง

pip install --ignore-installed BeautifulSoup4

0

ภาคผนวกของแบบสอบถามเดิม: module.py

help('modules')

$python modules.py

มันแสดงว่าโมดูล bs4 ได้รับการติดตั้งแล้ว

_codecs_kr          blinker             json                six
_codecs_tw          brotli              kaitaistruct        smtpd
_collections        bs4                 keyword             smtplib
_collections_abc    builtins            ldap3               sndhdr
_compat_pickle      bz2                 lib2to3             socket

วิธีแก้ปัญหาที่เหมาะสมคือ:

pip install --upgrade bs4

ควรแก้ปัญหา.

ไม่เพียงแค่นั้นมันจะแสดงข้อผิดพลาดเดียวกันสำหรับโมดูลอื่น ๆ ด้วย ดังนั้นคุณต้องออกคำสั่ง pip ในลักษณะเดียวกับด้านบนสำหรับโมดูลที่ผิดพลาดเหล่านั้น


0

ในกรณีที่คุณอยู่หลังพร็อกซีขององค์กรให้ลองใช้คำสั่งต่อไปนี้

pip ติดตั้ง --proxy = http: //www-YOUR_PROXY_URL.com: PROXY_PORT BeautifulSoup4

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