ตอนนี้คุณสามารถเรียกใช้สคริปต์ Python ด้วย Java และ Gradle Builds เท่านั้น
ปลั๊กอิน Gradle นี้ จะดาวน์โหลดและติดตั้ง เครื่องมือ conda เฉพาะเพื่อเรียกใช้สคริปต์ Python หรือ Executables อื่น ๆ ( pip , conda ฯลฯ ) จาก Env Virtual
การกำหนดค่าโครงการ Python สามารถเป็นไปโดยอัตโนมัติโดยงาน Gradle ในขณะนี้
11 หรือสูงกว่า6.2 หรือสูงกว่าโครงการ เรียกใช้สคริปต์ Python หรือโครงการโดยดำเนินการงานเดียวซึ่งจะดาวน์โหลดและติดตั้งสภาพแวดล้อมเสมือนจริงของ Python
การกำหนดค่า Python เพิ่มเติม (การติดตั้งแพ็คเกจ PIP/Conda ฯลฯ ) สามารถทำได้โดยการกำหนดงาน Gradle ในไฟล์ build.gradle.kts
ใช้ปลั๊กอินกับโครงการตามที่อธิบายไว้ในพอร์ทัล Gradle
กำหนดค่าปลั๊กอินโดยระบุเวอร์ชัน Python ที่ต้องการใน Build Script:
pythonPlugin {
pythonVersion = " 3.8.2 "
} กำหนดภารกิจในการเรียกใช้สคริปต์ Python ที่ต้องการเช่นการเรียกใช้ quicksort.py script ใน main DIR เพิ่มการกำหนดค่างานต่อไปนี้เพื่อสร้างสคริปต์:
tasks {
register< VenvTask >( " runQuickSort " ) {
workingDir = projectDir.resolve( " main " )
args = listOf ( " quicksort.py " )
}
}เรียกใช้สคริปต์ Python จาก Gradle:
# Linux
./gradlew runQuickSort
# Windows
gradlew.bat runQuickSortรอจนกว่าจะติดตั้ง conda และตั้งค่าสภาพแวดล้อม
สนุก :) 
พฤติกรรมเริ่มต้นของปลั๊กอินสามารถปรับได้โดยการระบุคุณสมบัติต่อไปนี้:
pythonVersion -> เวอร์ชันสภาพแวดล้อม Python, ค่าเริ่มต้น 3.13.0 , ที่มีอยู่สามารถตรวจสอบได้ที่ https://anaconda.org/conda-forge/python/condaVersion -> รุ่น Miniconda หรือ Anaconda, py312_24.9.2-0 เริ่มต้นสามารถตรวจสอบได้ที่ https://repo.anaconda.com/miniconda/ หรือ https://repo.anaconda.com/archive/ (Anaconda)condaInstaller -> ชื่อตัวติดตั้งสภาพแวดล้อม conda ค่าเริ่มต้นคือ Miniconda3 สำหรับ Anaconda เปลี่ยนเป็น Anaconda3condaRepoUrl -> url repository ซึ่งควรใช้ในการดาวน์โหลด binaries, เริ่มต้น https://repo.anaconda.com/miniconda สำหรับ anaconda https://repo.anaconda.com/archive/condaRepoUsername -> ชื่อผู้ใช้สำหรับการรับรองความถูกต้องพื้นฐานหากจำเป็นโดยไม่ได้ค่าเริ่มต้นcondaRepoPassword -> รหัสผ่านสำหรับการรับรองความถูกต้องพื้นฐานที่ใช้หากระบุชื่อ condaRepoUsername ไม่ควรส่งผ่านโดยตรงในไฟล์สคริปต์สามารถจัดหาได้โดยคุณสมบัติของ GradlecondaRepoHeaders -> ส่วนหัวเพิ่มเติมเพิ่มเติมที่ใช้สำหรับการเชื่อมต่อแผนที่ว่างเปล่าตามค่าเริ่มต้นuseHomeDir -> เมื่อ true ไดเรกทอรีการติดตั้งเริ่มต้นจะเป็นหนึ่งจากคุณสมบัติของ user.home ระบบบ้าน false โดยค่าเริ่มต้นinstallDir -> คุณสมบัติในการปรับแต่งไดเรกทอรีการติดตั้ง conda เท่ากับ <rootProjectDir>/.gradle/python โดยค่าเริ่มต้นหรือบ้านผู้ใช้ถ้า useHomeDir = truesystemArch -> สถาปัตยกรรมระบบปฏิบัติการค่าเริ่มต้นมาจากคุณสมบัติระบบ os.archideaDir -> directory .idea directory เพื่อตรวจจับโครงการ Intellij เท่ากับ <rootProjectDir>/.idea แนวคิดโดยค่าเริ่มต้น ตัวอย่างการกำหนดค่าส่วนขยายภายในไฟล์ build.gradle.kts :
pythonPlugin {
pythonVersion = " 3.7.0 "
condaVersion = " 2022.05 "
condaInstaller = " Anaconda3 "
condaRepoUrl = " https://nexus.com/repositories/conda "
condaRepoUsername = " user "
condaRepoPassword = extra[ " conda.repo.pass " ].toString()
condaRepoHeaders = mapOf (
" CUSTOM_HEADER_1 " to " headerValue1 " ,
" CUSTOM_HEADER_2 " to " headerValue2 "
)
installDir = file(layout.buildDirectory.dir( " python " ))
systemArch = " arm64 "
}VenvTaskงานทั้งหมดที่ควรดำเนินการใน Env เสมือนสามารถปรับแต่งได้เช่นกันโดยฟิลด์ต่อไปนี้:
venvExec -> ชื่อของการเรียกใช้งานจาก env เสมือนซึ่งจะถูกเรียกใช้งาน python โดยค่าเริ่มต้นinputFile -> ไฟล์อินพุตที่เป็นตัวเลือกไม่มีโดยค่าเริ่มต้นoutputFile -> ไฟล์เอาต์พุตที่เป็นตัวเลือกไม่มีโดยค่าเริ่มต้นargs -> รายการอาร์กิวเมนต์สำหรับการปฏิบัติการ venvExec ว่างเปล่าโดยค่าเริ่มต้นworkingDir -> Directory Directory, Project Directory โดยค่าเริ่มต้นenvironment -> แผนที่พร้อมตัวแปรสภาพแวดล้อมที่จะใช้ในระหว่างการดำเนินการว่างเปล่าโดยค่าเริ่มต้น ตัวอย่างการกำหนด VenvTask ภายในไฟล์ build.gradle.kts :
register< VenvTask >( " runPythonScript " ) {
venvExec = " python "
inputFile = file( " inputFile.txt " )
outputFile = file( " outputFile.txt " )
args = listOf ( " --some-flag " , " arg1 " )
workingDir = projectDir.resolve( " main " )
environment = mapOf ( " ENV_VAR_TO_PRINT " to " sampleEnvVar " )
}examples ในโครงการนี้ นำเข้าอัตโนมัติ Python SDK:
envSetupวิธีด้วยตนเอง:
main ) -> Mark Directory as -> as Sources root Linux - <installDir>/.gradle/python/Linux/<condaInstaller>-<condaVersion>
Windows - <installDir>/.gradle/python/Windows/<condaInstaller>-<condaVersion>
MacOSX - <installDir>/.gradle/python/MacOSX/<condaInstaller>-<condaVersion>
โดยที่ <installDir> เป็นแคตตาล็อกรูทที่จะติดตั้ง conda ที่ระบุโดยคุณสมบัติ installDir , <condaInstaller> คือ Conda Installer เช่น Miniconda3 และ <condaVersion> เป็นตัวติดตั้ง conda เช่น py38_4.8.3
หากคุณคุ้นเคยกับ Conda คุณสามารถดำเนินการตามคำสั่ง conda เช่น conda deactivate หรือ conda install โดยตรงกับไบนารีจากแคตตาล็อกด้านบน
อาจจำเป็นต้องใช้ PYTHONPATH ในระบบก่อนที่จะทำงานใด ๆ (https://stackoverflow.com/a/31841132)
นอกจากนี้คุณยังสามารถเรียกใช้สคริปต์ Python แบบอินไลน์แบบง่าย ๆ ภายในไฟล์บิลด์เช่นนี้:

คุณลักษณะ Intellij 'Inject Language' มีประโยชน์ในสถานการณ์เช่นนี้ :)
/usr/bin/env: 'python': No such file or directory เมื่อดำเนินการงาน envSetup -> มันเกี่ยวข้องกับขีด จำกัด ของ Shebang Char ซึ่งคือ 128
เมื่อติดตั้ง conda หากพา ธ คำนำหน้านานกว่าขีด จำกัด ของ Shebang เริ่มต้น ( #!/usr/bin/env python ) จะถูกใช้ในไฟล์สคริปต์ conda ที่ติดตั้ง ( condabin/conda ) เนื่องจากไม่มีการเข้าถึงไบนารี Python โดยเส้นทางนี้จึงมีการโยนข้อยกเว้น
ทางออกที่ง่ายที่สุดคือการจัดเก็บโครงการรูทที่เส้นทางที่สั้นที่สุดเท่าที่จะเป็นไปได้หรือใช้ installDir เพื่อระบุเส้นทางที่สั้นกว่าต่อโครงการย่อยที่มีปัญหา