Difference between revisions of "Python package guidelines"

From ArchWiki
Jump to: navigation, search
m (Notes)
m (add ja link)
 
(11 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
[[Category:Package development]]
 
[[Category:Package development]]
[[it:Python Package Guidelines]]
+
[[it:Python package guidelines]]
{{Package Guidelines}}
+
[[ja:Python パッケージガイドライン]]
 +
{{Package guidelines}}
 +
This document covers standards and guidelines on writing [[PKGBUILD]]s for [[Python]] software.
  
Writing [[PKGBUILD]]s for software written in [[Python]].
+
== Package naming ==
  
== Package Naming ==
+
For Python 3 libraries, use {{Ic|python-''modulename''}}. For applications, use the program name. In either case, the package name should be entirely lowercase.
For libraries, use {{Ic|python-''modulename''}}. For applications, use the program name. In either case, the package name should be entirely lowercase.
+
  
 
Python 2 libraries should instead be named {{Ic|python2-''modulename''}}.
 
Python 2 libraries should instead be named {{Ic|python2-''modulename''}}.
  
== File Placement ==
+
===Versioned packages===
 +
 
 +
If you need to add a versioned package then use {{Ic|python-''modulename''-''version''}}, e.g. {{Ic|python-colorama-0.2.5}}. So python dependency {{Ic|colorama==0.2.5}} will turn into {{Ic|python-colorama-0.2.5}} Arch package.
 +
 
 +
== File placement ==
 +
 
 
Most Python packages are installed with the [http://docs.python.org/library/distutils.html distutils] system using '''setup.py''', which installs files under {{Ic|/usr/lib/python''<python version>''/site-packages/''pkgname''}} directory.
 
Most Python packages are installed with the [http://docs.python.org/library/distutils.html distutils] system using '''setup.py''', which installs files under {{Ic|/usr/lib/python''<python version>''/site-packages/''pkgname''}} directory.
  
 
== Notes ==
 
== Notes ==
 +
 
The {{Ic|1=--optimize=1}} parameter compiles {{Ic|.pyo}} files so they can be tracked by [[pacman]].
 
The {{Ic|1=--optimize=1}} parameter compiles {{Ic|.pyo}} files so they can be tracked by [[pacman]].
  
Line 21: Line 28:
  
 
== Example ==
 
== Example ==
An example PKGBUILD can be found at {{Ic|/usr/share/pacman/PKGBUILD-python.proto}}, which is in the {{Pkg|abs}} package.
+
 
 +
An example PKGBUILD can be found [https://projects.archlinux.org/abs.git/tree/prototypes/PKGBUILD-python.proto here] or at {{Ic|/usr/share/pacman/PKGBUILD-python.proto}}, which is in the {{Pkg|abs}} package.

Latest revision as of 07:04, 27 December 2015

Package creation guidelines

CLRCrossEclipseFree PascalGNOMEGoHaskellJavaKDEKernelLispMinGWNode.jsNonfreeOCamlPerlPHPPythonRubyVCSWebWine

This document covers standards and guidelines on writing PKGBUILDs for Python software.

Package naming

For Python 3 libraries, use python-modulename. For applications, use the program name. In either case, the package name should be entirely lowercase.

Python 2 libraries should instead be named python2-modulename.

Versioned packages

If you need to add a versioned package then use python-modulename-version, e.g. python-colorama-0.2.5. So python dependency colorama==0.2.5 will turn into python-colorama-0.2.5 Arch package.

File placement

Most Python packages are installed with the distutils system using setup.py, which installs files under /usr/lib/python<python version>/site-packages/pkgname directory.

Notes

The --optimize=1 parameter compiles .pyo files so they can be tracked by pacman.

In most cases, you should put any in the arch array since most Python packages are architecture independent.

Please do not install a directory named just tests, as it easily conflicts with other Python packages (for example, /usr/lib/python2.7/site-packages/tests/).

Example

An example PKGBUILD can be found here or at /usr/share/pacman/PKGBUILD-python.proto, which is in the abs package.