Как передать информацию sys.path в DDD с помощью pydb? (используя виртуальную среду) - PullRequest
0 голосов
/ 06 марта 2019

Я следую книге по изучению keras по тензорному потоку в виртуальной среде.
Некоторые пакеты были установлены в моей виртуальной среде ~ / .venv2.
Внутри виртуальной среды (после выбора сценария активации), когда я запускаю скрипт ниже (tt.py)

import sys
print sys.path

, я получаю
(venv2) ckim @ chan-ubuntu: ~ / Tensorflow / chapter_10 $ python tt.py

['/home/ckim/Tensorflow/chapter_10', '/home/ckim/venv2/lib/python2.7', '/home/ckim/venv2/lib/python2.7/plat-x86_64-linux-gnu', '/home/ckim/venv2/lib/python2.7/lib-tk', '/home/ckim/venv2/lib/python2.7/lib-old', '/home/ckim/venv2/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/home/ckim/venv2/local/lib/python2.7/site-packages', '/home/ckim/venv2/lib/python2.7/site-packages', '/home/ckim/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat']

Я вижу пути к пакетам в переменной sys.path выше.Но когда я запускаю код с использованием DDD с помощью Pydb, я получаю другой результат.(Я запускаю его ddd -pydb tt.py и запускаю его внутри ddd)

['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/ckim/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat']

Как видите, все пути к пакетам в моем ~ / venv2 не указаны.Как я могу передать эти пути отладчику?

[ADD]
Я обнаружил, что просто добавив правильный sys.path в начале программы, я могу использовать все пакеты, кроме DDD, в виртуальной среде.как ниже.

import sys
sys.path = ['/home/ckim/Tensorflow/chapter_10', '/home/ckim/venv2/lib/python2.7', '/home/ckim/venv2/lib/python2.7/plat-x86_64-linux-gnu', '/home/ckim/venv2/lib/python2.7/lib-tk', '/home/ckim/venv2/lib/python2.7/lib-old', '/home/ckim/venv2/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/home/ckim/venv2/local/lib/python2.7/site-packages', '/home/ckim/venv2/lib/python2.7/site-packages', '/home/ckim/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat']

Но я все еще хочу знать, есть ли более элегантный способ сделать это (не касаясь исходного источника).

...