หมายเหตุ:โซลูชันด้านล่างใช้ได้เฉพาะเมื่อติดตั้ง zip การแจกจ่ายต้นทางหรือ tarball หรือติดตั้งในโหมดที่แก้ไขได้จากแผนผังต้นทาง จะไม่ทำงานเมื่อติดตั้งจากวงล้อไบนารี ( .whl
)
โซลูชันนี้มีความโปร่งใสมากขึ้น:
คุณจะเพิ่มข้อมูลเล็กน้อยsetup.py
และไม่จำเป็นต้องมีไฟล์เพิ่มเติม
นอกจากนี้คุณต้องพิจารณาการติดตั้งหลังการติดตั้งที่แตกต่างกันสองแบบ หนึ่งสำหรับโหมดพัฒนา / แก้ไขและอีกโหมดหนึ่งสำหรับโหมดติดตั้ง
เพิ่มสองคลาสที่มีสคริปต์หลังการติดตั้งของคุณไปที่setup.py
:
from setuptools import setup
from setuptools.command.develop import develop
from setuptools.command.install import install
class PostDevelopCommand(develop):
"""Post-installation for development mode."""
def run(self):
develop.run(self)
class PostInstallCommand(install):
"""Post-installation for installation mode."""
def run(self):
install.run(self)
และแทรกcmdclass
อาร์กิวเมนต์ให้กับsetup()
ฟังก์ชันในsetup.py
:
setup(
...
cmdclass={
'develop': PostDevelopCommand,
'install': PostInstallCommand,
},
...
)
คุณสามารถเรียกคำสั่งเชลล์ระหว่างการติดตั้งได้เช่นในตัวอย่างนี้ซึ่งเป็นการเตรียมการก่อนการติดตั้ง:
from setuptools import setup
from setuptools.command.develop import develop
from setuptools.command.install import install
from subprocess import check_call
class PreDevelopCommand(develop):
"""Pre-installation for development mode."""
def run(self):
check_call("apt-get install this-package".split())
develop.run(self)
class PreInstallCommand(install):
"""Pre-installation for installation mode."""
def run(self):
check_call("apt-get install this-package".split())
install.run(self)
setup(
...
ปล. ไม่มีจุดเข้าใช้งานก่อนการติดตั้งใน setuptools อ่านการสนทนานี้หากคุณสงสัยว่าเหตุใดจึงไม่มี