Metadata-Version: 2.1
Name: pypylon
Version: 1.7.1
Summary: The python wrapper for the Basler pylon Camera Software Suite.
Home-page: https://github.com/basler/pypylon
Author: Basler AG
Author-email: oss@baslerweb.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: C++
Classifier: Operating System :: Microsoft :: Windows :: Windows 7
Classifier: Operating System :: Microsoft :: Windows :: Windows 8
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Multimedia :: Graphics :: Capture :: Digital Camera
Classifier: Topic :: Multimedia :: Video :: Capture
Classifier: Topic :: Scientific/Engineering
Description-Content-Type: text/markdown

# pypylon
The official python wrapper for the Basler pylon Camera Software Suite.

**Please Note:**
This project is offered with no technical support by Basler AG.
You are welcome to post any questions or issues on [GitHub](https://github.com/basler/pypylon) or on [ImagingHub](https://www.imaginghub.com).

[![Build Status](https://github.com/basler/pypylon/workflows/build/badge.svg?branch=master)](https://github.com/basler/pypylon/actions)
[![Build Status](https://ci.appveyor.com/api/projects/status/45j4tydwdr0fv05p/branch/master?svg=true)](https://ci.appveyor.com/project/basler-oss/pypylon/branch/master)

# Getting Started

 * Install [pylon](https://www.baslerweb.com/pylon)  
   This is strongly recommended but not mandatory. See [known issues](#known-issues) for further details.
 * Install pypylon: ```pip3 install pypylon```   
   For more installation options and the supported systems please read the [Installation](#installation) paragraph.
 * Look at [samples/grab.py](https://github.com/basler/pypylon/blob/master/samples/grab.py) or use the following snippet:

```python
from pypylon import pylon

camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice())
camera.Open()

# demonstrate some feature access
new_width = camera.Width.GetValue() - camera.Width.GetInc()
if new_width >= camera.Width.GetMin():
    camera.Width.SetValue(new_width)

numberOfImagesToGrab = 100
camera.StartGrabbingMax(numberOfImagesToGrab)

while camera.IsGrabbing():
    grabResult = camera.RetrieveResult(5000, pylon.TimeoutHandling_ThrowException)

    if grabResult.GrabSucceeded():
        # Access the image data.
        print("SizeX: ", grabResult.Width)
        print("SizeY: ", grabResult.Height)
        img = grabResult.Array
        print("Gray value of first pixel: ", img[0, 0])

    grabResult.Release()
camera.Close()
```

# Installation
## Prerequisites
 * Installed [pylon](https://www.baslerweb.com/pylon)   
   For the binary installation this is not mandatory but strongly recommended. See [known issues](#known-issues) for further details.
 * Installed [python](https://www.python.org/) with [pip](https://pip.pypa.io/en/stable/)

## Binary Installation
The easiest way to get pypylon is to install a prebuild wheel.
Binary releases for most architectures are available on [pypi](https://pypi.org)**.
To install pypylon open your favourite terminal and run:

```pip3 install pypylon```

The following versions are available on pypi:

 |                  | 3.4 | 3.5 | 3.6 | 3.6 | 3.7 | 3.8 | 3.9 |
 |------------------|-----|-----|-----|-----|-----|-----|-----|
 | Windows 32bit    | x   | x   | x   | x   | x   | x   | x   |
 | Windows 64bit    | x   | x   | x   | x   | x   | x   | x   |
 | Linux i686**     | -*  | -*  | x   | x   | x   | x   | x   |
 | Linux x86_64**   | -*  | -*  | x   | x   | x   | x   | x   |
 | Linux armv7l**   | -*  | -*  | x   | x   | x   | x   | x   |
 | Linux aarch64**  | -*  | -*  | x   | x   | x   | x   | x   |
 | Mac OS***        | -   | -   | x   | x   | x   | x   | x   |


> Additional Notes on binary packages:  
> * (*) The linux wheels for python 3.4 and 3.5 are not available on pypi.  
    You can get them from [Github Releases](https://github.com/basler/pypylon/releases).  
> * (**) The linux binaries are manylinux_2_24 conformant.  
    This is roughly equivalent to a minimum glibc version >= 2.24.  
    :warning: You need at least pip 20.3 to install them.
> * (***) MacOS binaries are built for macOS >= 10.14 (Mojave)  

## Installation from Source
Building the pypylon bindings is supported and tested on Windows and Linux.

You need a few more things to compile pypylon:
 * A compiler for your system (Visual Studio on Windows, gcc on linux)
 * Python development files (e.g. `sudo apt install python-dev` on linux)
 * [swig](http://www.swig.org) >= 4.0

To build pypylon from source:
```console
git clone https://github.com/basler/pypylon.git
cd pypylon
pip install .
```
# Development

Pull requests to pypylon are very welcome. To help you getting started with pypylon improvements, here are some hints:

## Starting Development
```console
python setup.py develop
```
This will "link" the local pypylon source directory into your python installation. It will not package the pylon libraries and always use the installed pylon.
After changing pypylon, execute `python setup.py build` and test...

## Running Unit Tests
> NOTE: The unit tests try to import `pypylon....`, so they run against the *installed* version of pypylon.
```console
python -m unittest tests/....
python tests/....
```
# Known Issues
 * For USB 3.0 cameras to work on Linux, you need to install appropriate udev rules.
   The easiest way to get them is to install the official [pylon](http://www.baslerweb.com/pylon) package.


