Я занимаюсь анализом и намереваюсь реструктурировать свои скрипты в пакет.У меня есть такая структура каталогов:
project
| README.md
| setup.py
| requirements.txt
|
└───data
└───notebooks
| notebook_A.ipynb
|
└───my_package
| __init__.py
|
└───module_A
| __init__.py
| source_A.py
|
└───module_B
__init__.py
source_B.py
Сначала я создам среду с помощью Conda:
conda create my_environment
Затем цель состоит в том, чтобы сделать my_package импортируется в ноутбуки без потери возможности редактирования исходного кода.Итак, я буду запускать:
$ (my_environment) pip install -e .
Это работает, как ожидалось, и создает:
/Applications/anaconda3/envs/my_environment/lib/python3.6/site-packages/my_package.egg-link
Затем я хочу проверить, все работает:
$ (my_environment) cd notebooks
Все работает вipython:
$ (my_environment) ipython
In [1]: import src
In [2]: src.__path__
Out[2]: ['/Users/jalmarituominen/Desktop/my_environment_project/src']
Но когда я запускаю ноутбук jupyter и запускаю его с ядром my_environment , я получаю
import sys
sys.path
[1]:
['',
'/Applications/anaconda3/lib/python36.zip',
'/Applications/anaconda3/lib/python3.6',
'/Applications/anaconda3/lib/python3.6/lib-dynload',
'/Applications/anaconda3/lib/python3.6/site-packages',
'/Applications/anaconda3/lib/python3.6/site-packages/aeosa',
'/Applications/anaconda3/lib/python3.6/site-packages/IPython/extensions',
'/Users/jalmarituominen/.ipython']
Очевидно, что не могу импортировать my_package , поскольку его нет в PATH.
Однако, когда я меняю ядро на Python 3 , я получаю:
import sys
sys.path
[1]:
['/Applications/anaconda3/envs/my_environment/lib/python36.zip',
'/Applications/anaconda3/envs/my_environment/lib/python3.6',
'/Applications/anaconda3/envs/my_environment/lib/python3.6/lib-dynload',
'',
'/Applications/anaconda3/envs/my_environment/lib/python3.6/site-packages',
'/Users/jalmarituominen/Desktop/my_environment_project',
'/Applications/anaconda3/envs/my_environment/lib/python3.6/site-packages/IPython/extensions',
'/Users/jalmarituominen/.ipython']
И my_package импортируется.
По какой-то причине пути этих двух сред перепутаны.Есть идеи, как решить эту проблему?Можно ли вручную изменить ПУТЬ ядра?