Доступ к пространству имен Python из другого процесса Python

Вы можете использовать модуль os.

>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'

Но если речь идет о поиске других модулей: вы можете установить переменную среды, называемую PYTHONPATH, под Linux будет как

export PYTHONPATH=/path/to/my/library:$PYTHONPATH

Затем интерпретатор также ищет это место для модулей import ed.

edit

В Windows:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

(снято из http://docs.python.org/using/windows.html )

edit 2

... и даже лучше: используйте virtualenv и virtualenv_wrapper, это позволит вам создать среду разработки, в которой вы можете добавлять пути к модулю по своему усмотрению (add2virtualenv) без загрязнения вашей установки или «нормальной» рабочей среды.

http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html

0
задан balkon16 18 March 2019 в 11:36
поделиться

1 ответ

Проблема с import counter состоит в том, что пространство имен внутри counter.py будет изменено на ваше текущее пространство имен, поскольку вы импортируете его в текущее пространство имен.

Однако, если все, что вы хотите сделать, это просто посмотреть результат counter.py, вы можете просто использовать функцию exec() для ее отдельного выполнения. Это не изменит его пространство имен.

Пример:

В counter.py :

a = 1
b = 10

for i in range(b):
    print('\na = ', a)
    print('globals = ', globals())
    a += 1

print('\na = ', a)
print('globals = ', globals())

В other_script.py :

exec(open('counter.py').read())
0
ответ дан David Deprost 18 March 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: