ฉันเห็นคำสั่งเช่นนี้มากขึ้นเรื่อย ๆ :
$ pip install "splinter[django]"
วงเล็บเหลี่ยมเหล่านี้ทำหน้าที่อะไร?
ฉันเห็นคำสั่งเช่นนี้มากขึ้นเรื่อย ๆ :
$ pip install "splinter[django]"
วงเล็บเหลี่ยมเหล่านี้ทำหน้าที่อะไร?
pip install "splinter[django]"เพื่อหลีกเลี่ยงการขยายตัวของเปลือกใด ๆ โดยไม่ได้ตั้งใจของแบบแผน
คำตอบ:
ไวยากรณ์ที่คุณใช้คือ:
pip install "project[extra]"
ในกรณีของคุณคุณจะแพคเกจที่มีการเพิ่มการสนับสนุนสำหรับ วงเล็บเหลี่ยม ( ) ไม่ใช่ไวยากรณ์เฉพาะ แต่เป็นแบบแผน จริงๆคุณกำลังติดตั้งแพ็คเกจชื่อ: .installingsplinterdjango[]"splinter[django]"
คำอธิบายจาก@chetner:
คำสั่ง
pip install splinter djangoจะติดตั้งสองแพ็คเกจชื่อsplinterและdjango.splinter[django]บนมืออื่น ๆ ที่ติดตั้งแตกต่างจากที่splinterแพคเกจที่มีการสนับสนุนdjangoสำหรับ โปรดทราบว่าไม่มีส่วนเกี่ยวข้องกับdjangoแพ็คเกจ แต่เป็นเพียงสตริงที่กำหนดโดยsplinterแพ็กเกจสำหรับชุดคุณลักษณะเฉพาะที่เปิดใช้งาน
extraแปลว่าอะไร?
splinterและdjango. splinter[django]บนมืออื่น ๆ ที่ติดตั้งแตกต่างจากที่แพคเกจที่มีการสนับสนุนsplinter djangoโปรดทราบว่าไม่มีส่วนเกี่ยวข้องกับdjangoแพ็คเกจ แต่เป็นเพียงสตริงที่กำหนดโดยsplinterแพ็กเกจสำหรับชุดคุณลักษณะเฉพาะที่เปิดใช้งาน
splinterยังคงเป็นชื่อแพ็คเกจ pipแยกวิเคราะห์splinter[django]และรับรู้ว่ามันเป็นชื่อแพ็กเกจโดยมี "อาร์กิวเมนต์" พิเศษเพื่อช่วยในการติดตั้งไฟล์ที่ถูกต้อง วิธีการโต้แย้งdjangoการตีความนี้ขึ้นอยู่กับsetup.pyไฟล์ (หรือบางไฟล์ config อื่น ๆ หรือไม่ฉันไม่จริงรู้รายละเอียด) splinterใช้ในการกำหนดแพคเกจ
pip install splinter pip install splinter[django]แพคเกจเพิ่มเติมที่ติดตั้งอาจ (และอาจทำ) เปิดใช้งานคุณสมบัติเพิ่มเติมของเสี้ยนเพื่อทำงานได้ แต่จะไม่เปลี่ยนแปลงอะไรเกี่ยวกับแพ็คเกจเสี้ยน เพียงแค่บอก pip เกี่ยวกับการอ้างอิงเพิ่มเติม
[optional]ใน PIP หมายถึงการอ้างอิงที่เป็นทางเลือกในกรณีที่นักพัฒนารายอื่นต้องการนำรูปแบบนี้ไปใช้ในการปรับใช้แพ็คเกจ Python ของตนเองนี่คือคำอธิบายเพิ่มเติมเกี่ยวกับbrackets []in pip
ในการติดตั้งairflowจากpipเราใช้คำสั่งนี้:
pip install 'apache-airflow'
คุณสามารถติดตั้งส่วนประกอบเสริมของการไหลของอากาศด้วย:
pip install 'apache-airflow[aws]'
# [optional] -----------^
เมื่อเราค้นหา pypiเพื่อapache-airflowทราบว่าแพ็คเกจเสริมไม่ปรากฏขึ้น:
pip search 'apache-airflow'
apache-airflow (1.10.9) - Programmatically author, schedule and monitor data pipelines
pylint-airflow (0.1.0a1) - A Pylint plugin to lint Apache Airflow code.
swe-airflow-tools (0.0.3) - Tools for Apache Airflow Application
airflow (0.6) - Placeholder for the old Airflow package
...
setup.pyคุณสามารถดูว่าสิ่งนี้สำเร็จได้อย่างไรในsetup.py สคริปต์
ทางด้านซ้ายในsetup.py- extras_requireกำหนดไว้
ทางด้านขวาคือคำสั่งการติดตั้งที่สัมพันธ์กันสำหรับแพ็กเกจย่อยที่เป็นทางเลือกเหล่านี้
ค่อนข้างแน่ใจว่านี่คือความพิเศษของ setuptools:
บางครั้งโครงการมีการอ้างอิง "แนะนำ" ซึ่งไม่จำเป็นสำหรับการใช้งานทั้งหมดของโครงการ ตัวอย่างเช่นโปรเจ็กต์อาจเสนอเอาต์พุต PDF ที่เป็นทางเลือกหากมีการติดตั้ง ReportLab และ reStructuredText รองรับหากติดตั้ง docutils คุณสมบัติเสริมเหล่านี้เรียกว่า“ ความพิเศษ” ...
นี่คือรายการจากsetup.pyไฟล์สำหรับโครงการที่เป็นปัญหา :
"django": ["Django>=1.7.11;python_version<'3.0'", "Django>=2.0.6;python_version>'3.3'", "lxml>=2.3.6", "cssselect", "six"],