[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