You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
Markdown
58 lines
1.6 KiB
Markdown
# How to add a custom syspath for Python
|
|
|
|
When importing libraries, Python will check in the sys.path to know which
|
|
subdirectories might contain a package. It will mark any directory containing a
|
|
`__init__.py` file as a package or subpackage if its parent also has one.
|
|
|
|
In order to create a package you then simply have to a have a structure like:
|
|
|
|
```
|
|
sound/ Top-level package
|
|
__init__.py Initialize the sound package
|
|
formats/ Subpackage for file format conversions
|
|
__init__.py
|
|
wavread.py
|
|
wavwrite.py
|
|
aiffread.py
|
|
aiffwrite.py
|
|
auread.py
|
|
auwrite.py
|
|
...
|
|
effects/ Subpackage for sound effects
|
|
__init__.py
|
|
echo.py
|
|
surround.py
|
|
reverse.py
|
|
...
|
|
filters/ Subpackage for filters
|
|
__init__.py
|
|
equalizer.py
|
|
vocoder.py
|
|
karaoke.py
|
|
...
|
|
```
|
|
|
|
And to be able to import this package from anywhere you can simply add the
|
|
absolute path to `sound` to your syspath before importing it.
|
|
|
|
## Method 1
|
|
|
|
```python
|
|
import sys
|
|
import os
|
|
|
|
# if you maximum priority you can add it first
|
|
sys.path.insert(0, os.path.abspath('/path/to/your/package/'))
|
|
|
|
# of add it at the end if you does not want priority
|
|
sys.path.append(os.path.abspath('/path/to/your/package/'))
|
|
```
|
|
|
|
## Method 2
|
|
|
|
You can use the `PYTHONPATH` env variable to add new paths to your syspath like
|
|
so:
|
|
```shell
|
|
$ PYTHONPATH="/path/to/your/package/" python3
|
|
```
|