[doc] Python sys.path
This commit is contained in:
parent
2375507b5d
commit
d4a4072c93
1 changed files with 57 additions and 0 deletions
57
docs/how_to_add_custom_syspath.md
Normal file
57
docs/how_to_add_custom_syspath.md
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
# 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
|
||||||
|
```
|
Loading…
Reference in a new issue