Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cython
Commits
f68639da
Commit
f68639da
authored
7 years ago
by
Stefan Behnel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Document cythonize usage for command line compilation.
Closes #2012.
parent
e4056355
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
16 deletions
+31
-16
docs/src/reference/compilation.rst
docs/src/reference/compilation.rst
+31
-16
No files found.
docs/src/reference/compilation.rst
View file @
f68639da
...
@@ -21,28 +21,43 @@ extension modules, and how to pass directives to the Cython compiler.
...
@@ -21,28 +21,43 @@ extension modules, and how to pass directives to the Cython compiler.
Compiling from the command line
Compiling from the command line
===============================
===============================
Run the
Cython compiler command with your options and list of ``.pyx``
Run the
``cythonize`` compiler command with your options and list of
files to generate. For example::
``.pyx``
files to generate. For example::
$ cython
-a
yourmod.pyx
$ cython
ize -a -i
yourmod.pyx
This creates a ``yourmod.c`` file, and the ``-a`` switch produces an
This creates a ``yourmod.c`` file (or ``yourmod.cpp`` in C++ mode), compiles it,
annotated html file of the source code. Pass the ``-h`` flag for a
and puts the resulting extension module (``.so`` or ``.pyd``, depending on your
complete list of supported flags.
platform) next to the source file for direct import (``-i`` builds "in place").
The ``-a`` switch additionally produces an annotated html file of the source code.
Compiling your ``.c`` files will vary depending on your operating
The ``cythonize`` command accepts multiple source files and glob patterns like
system. Python documentation for writing extension modules should
``**/*.pyx`` as argument and also understands the common ``-j`` option for
have some details for your system. Here we give an example on a Linux
running multiple parallel build jobs. When called without further options, it
system::
will only translate the source files to ``.c`` or ``.cpp`` files. Pass the
``-h`` flag for a complete list of supported options.
$ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing \
There is also a simpler command line tool named ``cython`` which only invokes
-I/usr/include/python2.7 -o yourmod.so yourmod.c
the source code translator.
[``gcc`` will need to have paths to your included header files and
In the case of manual compilation, how to compile your ``.c`` files will vary
paths to libraries you need to link with]
depending on your operating system and compiler. The Python documentation for
writing extension modules should have some details for your system. On a Linux
system, for example, it might look similar to this::
A ``yourmod.so`` file is now in the same directory and your module,
$ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing \
``yourmod``, is available for you to import as you normally would.
-I/usr/include/python3.5 -o yourmod.so yourmod.c
(``gcc`` will need to have paths to your included header files and paths
to libraries you want to link with.)
After compilation, a ``yourmod.so`` file is written into the target directory
and your module, ``yourmod``, is available for you to import as with any other
Python module. Note that if you are not relying on ``cythonize`` or distutils,
you will not automatically benefit from the platform specific file extension
that CPython generates for disambiguation, such as
``yourmod.cpython-35m-x86_64-linux-gnu.so`` on a regular 64bit Linux installation
of CPython 3.5.
Compiling with ``distutils``
Compiling with ``distutils``
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment