คำถามติดแท็ก packaging

5
ความแตกต่างระหว่างการแจกแจง distutils, setuptools และ distutils2?
สถานการณ์ ฉันพยายามพอร์ตไลบรารีโอเพนซอร์ซกับ Python 3 ( SymPyหากมีใครสงสัย) ดังนั้นฉันต้องทำงาน2to3โดยอัตโนมัติเมื่อสร้าง Python 3 ฉันต้องใช้distributeมัน ดังนั้นผมต้องพอร์ตระบบปัจจุบันซึ่ง (ตาม doctest) distutilsจะ ปัญหา แต่น่าเสียดายที่ผมไม่แน่ใจว่าสิ่งที่แตกต่างระหว่างโมดูลเหล่านี้distutils, ,distribute setuptoolsเอกสารนั้นเป็นแบบร่างที่ดีที่สุดเนื่องจากพวกเขาดูเหมือนจะแยกจากกันโดยมีจุดประสงค์เพื่อให้เข้ากันได้ในสถานการณ์ส่วนใหญ่ (แต่จริงๆแล้วไม่ใช่ทั้งหมด) ... เป็นต้นไปเรื่อย ๆ คำถาม มีคนอธิบายความแตกต่างได้ไหม ฉันควรใช้อะไรดี ทางออกที่ทันสมัยที่สุดคืออะไร (นอกเหนือจากนี้ฉันขอขอบคุณคู่มือบางอย่างเกี่ยวกับการย้ายไปที่Distributeแต่นั่นก็ไม่น่าเกินขอบเขตของคำถาม ... )

13
รวมถึงการพึ่งพาในขวดที่มี Maven
มีวิธีบังคับ maven (2.0.9) เพื่อรวมการขึ้นต่อกันทั้งหมดในไฟล์ jar เดียวหรือไม่? ฉันมีโครงการที่สร้างเป็นไฟล์ jar เดียว ฉันต้องการให้คลาสจากการอ้างอิงถูกคัดลอกลงใน jar เช่นกัน อัปเดต:ฉันรู้ว่าฉันไม่สามารถรวมไฟล์ jar ในไฟล์ jar ได้ ฉันกำลังค้นหาวิธีที่จะแกะขวดที่ระบุเป็นการอ้างอิงและจัดเก็บไฟล์คลาสไว้ในขวดของฉัน
353 java  maven-2  jar  packaging 

4
setuptools vs. distutils: ทำไม distutils ยังคงเป็นเรื่อง
งูหลามมีประวัติศาสตร์อันสับสนของเครื่องมือที่สามารถใช้ในการจัดแพคเกจและอธิบายโครงการ: เหล่านี้รวมถึงdistutilsในห้องสมุดมาตรฐานdistribute, distutils2และsetuptools(และอาจจะมากกว่า) ปรากฏว่าdistributeและdistutils2ถูกยกเลิกในความโปรดปรานsetuptoolsซึ่งออกจากสองมาตรฐานการแข่งขัน เพื่อความเข้าใจของฉันsetuptoolsมีตัวเลือกมากขึ้น (เช่นการประกาศการอ้างอิงการทดสอบและอื่น ๆ ) มากกว่าdistutilsแต่มันไม่รวมอยู่ในไลบรารี่มาตรฐานของไพ ธ อน (ยัง?) หลามบรรจุภัณฑ์คู่มือการใช้งาน [ 1 ] แนะนำขณะนี้: ใช้setuptoolsเพื่อกำหนดโครงการและสร้างการกระจายแหล่งที่มา และอธิบาย: แม้ว่าคุณสามารถใช้บริสุทธิ์distutilsสำหรับโครงการจำนวนมากก็ไม่สนับสนุนการกำหนดอ้างอิงในโครงการอื่น ๆ setuptoolsและจะหายไปสาธารณูปโภคอำนวยความสะดวกหลายอย่างสำหรับประชากรโดยอัตโนมัติเมตาดาต้าแพคเกจได้อย่างถูกต้องที่ให้ไว้โดย เมื่ออยู่นอกไลบรารีมาตรฐาน setuptools ยังมีฟีเจอร์ที่สอดคล้องกันมากขึ้นในเวอร์ชัน Python ที่แตกต่างกันและ (ต่างจากdistutils) setuptoolsจะได้รับการอัปเดตเพื่อสร้างรูปแบบมาตรฐาน“ Metadata 2.0” ที่กำลังจะเกิดขึ้นในทุกเวอร์ชั่นที่รองรับ แม้แต่โครงการที่เลือกใช้distutilsเมื่อ pip ติดตั้งโครงการดังกล่าวโดยตรงจากแหล่งที่มา (แทนที่จะติดตั้งจากไฟล์ล้อที่สร้างไว้ล่วงหน้า) มันจะสร้างโครงการของคุณโดยใช้setuptoolsแทน อย่างไรก็ตามการดูไฟล์setup.pyของโครงการต่างๆพบว่าสิ่งนี้ดูเหมือนจะไม่ได้มาตรฐานจริง แพ็คเกจจำนวนมากยังคงใช้งานอยู่distutilsและแพ็คเกจที่สนับสนุนsetuptoolsมักจะผสมsetuptoolsกับdistutilsตัวอย่างเช่นโดยการนำเข้าทางเลือก: try: from setuptools import setup except ImportError: from distutils.core import setup …

9
py2exe - สร้างไฟล์เรียกทำงานไฟล์เดียว
ฉันคิดว่าฉันได้ยินมาว่าpy2exeสามารถทำสิ่งนี้ได้ แต่ฉันไม่เคยคิดเลย มีใครทำเช่นนี้สำเร็จหรือไม่ ฉันสามารถดูไฟล์ setup.py ของคุณและตัวเลือกบรรทัดคำสั่งใดที่คุณใช้บ้าง โดยทั่วไปฉันกำลังคิดว่าจะให้ไฟล์ที่สามารถเรียกใช้งานได้เพียงไฟล์เดียวซึ่งทำสิ่งต่าง ๆ เช่นคลายซิปตัวเองไปจนถึง / temp และรัน
141 python  packaging  py2exe 

1
วิธีการจัดส่งโปรแกรมเรียกใช้งานด้วย Language.Haskell.Interpreter
ฉันหวังว่าจะใช้ล่าม Haskell hintเพื่อที่ฉันจะได้เขียนปลั๊กอินใน Haskell เพื่อใช้กับโปรแกรมของฉัน ฉันไม่ต้องการจัดส่งแพลตฟอร์ม Haskell ทั้งหมดสำหรับโปรแกรมปฏิบัติการของฉัน โดยปกติ executables ของ Haskell นั้นมีอยู่ในตัวเอง ตัวอย่างเช่นการลบPATHจะไม่ทำให้เกิดปัญหา: $ PATH=. Hello Hello world อย่างไรก็ตามโปรแกรมทดสอบอย่างง่ายโดยใช้runInterpreterระเบิดถ้าฉันลบPATH: $ PATH=. TryHint GhcException "panic! (the 'impossible' happened)\n (GHC version 7.8.3 for x86_64-apple-darwin):\n\tDynamic linker not initialised\n\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\n" ไลบรารีหรือไฟล์ปฏิบัติการใดที่ต้องมีอยู่ในสภาพแวดล้อมเพื่อให้ทำงานได้? otool ไม่ได้ให้คำแนะนำมาก: otool -L TryHint TryHint: …

10
ฉันจะจัดโครงสร้างแพ็คเกจ Python ที่มีรหัส Cython ได้อย่างไร
ฉันต้องการสร้างแพ็คเกจ Python ที่มีรหัสCython ฉันมีรหัส Cython ที่ใช้งานได้ดี อย่างไรก็ตามตอนนี้ฉันต้องการทราบวิธีที่ดีที่สุดในการจัดแพคเกจ สำหรับคนส่วนใหญ่ที่ต้องการติดตั้งแพ็กเกจฉันต้องการรวม.cไฟล์ที่ Cython สร้างและจัดเตรียมsetup.pyเพื่อรวบรวมเพื่อสร้างโมดูล จากนั้นผู้ใช้ไม่จำเป็นต้องติดตั้ง Cython เพื่อติดตั้งแพ็คเกจ แต่สำหรับผู้ที่อาจต้องการแก้ไขแพ็คเกจฉันก็ต้องการที่จะให้.pyxไฟล์Cython และยังอนุญาตให้setup.pyสร้างโดยใช้ Cython (ดังนั้นผู้ใช้เหล่านั้นจะต้องติดตั้ง Cython) ฉันจะจัดโครงสร้างไฟล์ในแพ็กเกจเพื่อรองรับทั้งสองสถานการณ์นี้ได้อย่างไร เอกสาร Cython ให้คำแนะนำเล็ก แต่ไม่ได้บอกว่าจะสร้างซิงเกิ้ลsetup.pyที่จัดการทั้งเคสที่มี / ไม่มี Cython ได้อย่างไร
122 python  packaging  cython 

10
จะสร้างแพ็คเกจ Debian / Ubuntu จากซอร์สได้อย่างไร
ฉันมีแหล่งที่มาของโปรแกรม (นำมาจาก cvs / svn / git / ... ) และฉันต้องการสร้างแพ็คเกจ Debian / Ubuntu สำหรับมัน แพคเกจมีอยู่ในที่เก็บ แต่: เป็นรุ่นเก่ากว่า (ไม่มีคุณสมบัติที่ฉันต้องการ) ฉันต้องการตัวเลือกการคอมไพล์ที่แตกต่างจากค่าเริ่มต้นเล็กน้อย วิธีที่ง่ายที่สุดในการทำคืออะไร? ฉันกังวลเกี่ยวกับสองสิ่ง ฉันจะตรวจสอบได้อย่างไรว่าฉันระบุการอ้างอิงทั้งหมดอย่างถูกต้องหรือไม่? (ฉันสามารถรับคำแนะนำได้โดยดูว่าเวอร์ชันเก่าขึ้นอยู่กับอะไร แต่อาจมีการเพิ่มการอ้างอิงใหม่) ฉันจะป้องกันไม่ให้ระบบอัปเดตติดตั้งเวอร์ชันเก่าใน repo ในการอัปเดตได้อย่างไร ฉันจะป้องกันไม่ให้ระบบติดตั้งเวอร์ชันที่ใหม่กว่า (เมื่อหมด) เขียนทับแพ็กเกจที่กำหนดเองของฉันได้อย่างไร
117 ubuntu  debian  packaging 

6
วิธีเขียน setup.py เพื่อรวม git repo เป็นการอ้างอิง
ฉันกำลังพยายามเขียนsetup.pyแพคเกจของฉัน แพ็กเกจของฉันจำเป็นต้องระบุการอ้างอิงบน git repo อื่น นี่คือสิ่งที่ฉันมีจนถึงตอนนี้: from setuptools import setup, find_packages setup( name='abc', packages=find_packages(), url='https://github.abc.com/abc/myabc', description='This is a description for abc', long_description=open('README.md').read(), install_requires=[ "requests==2.7.0", "SomePrivateLib>=0.1.0", ], dependency_links = [ "git+git://github.abc.com/abc/SomePrivateLib.git#egg=SomePrivateLib", ], include_package_data=True, ) เมื่อฉันวิ่ง: pip install -e https://github.abc.com/abc/myabc.git#egg=analyse ฉันเข้าใจ ไม่พบเวอร์ชันที่ตรงตามข้อกำหนด SomePrivateLib> = 0.1.0 (จากการวิเคราะห์) (จากเวอร์ชัน:) ไม่พบการแจกแจงที่ตรงกันสำหรับ SomePrivateLib> = 0.1.0 (จากการวิเคราะห์) …

3
วิธีสร้างไฟล์ Python egg
ฉันมีคำถามเกี่ยวกับไฟล์ egg ใน Python ฉันมีโค้ด Python มากมายที่จัดเรียงตามแพ็คเกจและฉันกำลังพยายามสร้างไฟล์ egg ฉันทำตามคำแนะนำแต่เป็นเรื่องธรรมดามาก ตามนั้นดูเหมือนว่าฉันต้องมีไฟล์ setup.py คุณช่วยบอกฉันได้ไหมว่าฉันต้องใส่อะไรลงในไฟล์ setup.py และควรอยู่ที่ไหน ฉันคิดว่าเพียงพอที่จะสร้าง setup.py แล้วเริ่ม "setup.py bdist_egg" เพื่อรับไฟล์ egg คุณช่วยยืนยันได้ไหม เป็นไปได้ไหมที่จะรวมเฉพาะไฟล์. pyc ลงในไฟล์ egg มีไฟล์. egg ฉันจะเริ่มโค้ดจากมันโดยไม่ต้องคลายไฟล์ได้java -jar <jar file>อย่างไร?
93 python  packaging  egg 

3
สร้างไฟล์ปฏิบัติการเดียวจากโครงการ Python
ฉันต้องการสร้างไฟล์ปฏิบัติการเดียวจากโครงการ Python ของฉัน ผู้ใช้ควรจะดาวน์โหลดและเรียกใช้งานได้โดยไม่ต้องติดตั้ง Python ถ้าฉันแค่แจกจ่ายแพ็คเกจฉันสามารถใช้ pip วงล้อและ PyPI เพื่อสร้างและแจกจ่ายได้ แต่สิ่งนี้ต้องการให้ผู้ใช้มี Python และรู้วิธีติดตั้งแพ็คเกจ ฉันสามารถใช้อะไรเพื่อสร้างไฟล์ปฏิบัติการในตัวจากโปรเจ็กต์ Python
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.