Как импортировать модули из альтернативных мест при использовании Python IDLE? - PullRequest
4 голосов
/ 08 декабря 2011

Я пытался понять это более 2 дней, просматривая Интернет и учебник, но пока не решил свою проблему. Я настоящий новичок и пока не знаю, чем занимаюсь ..

Программное обеспечение, которое я использую: Mac OS X 10.6 Python v3.2.2 Интерактивный переводчик (IDLE)

Проблема: Каталог по умолчанию для IDLE / Users / ME / Documents /. Файлы с расширением .py можно открыть только в том случае, если они находятся в этом каталоге. Однако я создал папку, в которой хотел бы сохранить все файлы .py и т. Д., Которые имеют отношение к этому программному обеспечению. В настоящее время IDLE не может загрузить .py файлы из выбранного мной каталога.

Сначала я добавил в IDLE: импорт систем. sys.path.append ( 'Пользователи / Mydir /') sys.path

Однако в уже существующем потоке от 2010 года я прочитал, что sys.path предназначен ТОЛЬКО для интерпретатора, и что если я хочу изменить это, мне нужно изменить переменную среды PYTHONPATH:

PYTHONPATH = "/ Me / Документы / MYDIR: $ PYTHONPATH" экспорт PYTHONPATH

Однако я запутался, как это использовать, и не могу найти ответы на мои следующие вопросы: 1) PYTHONPATH (.py?) Уже существовал на моем компьютере, когда я установил программу? Если ДА, где это? Я не могу найти это нигде. Если НЕТ, мне нужно его создать. Но где и каким должен быть контент, чтобы IDLE мог загружать файлы из каталога не по умолчанию? Должен ли он содержать только слова, выделенные жирным шрифтом?

Надеюсь, я прояснил свою проблему.

Приветствия

Ответы [ 2 ]

7 голосов
/ 08 декабря 2011

Мне не совсем понятно, что вы подразумеваете под load.Это может означать Open и Close файлы в редакторе IDLE.Или это может означать возможность использовать оператор Python import для загрузки существующих модулей Python из других файлов.Я предполагаю, что последнее означает, что под load вы подразумеваете import.

. Существует два основных способа запуска IDLE в Mac OS X. Один из них - из командной строки терминальной сессии;если вы установили Python 3.2 с помощью установщиков python.org, по умолчанию будет работать /usr/local/bin/idle3.2.Другой способ - запустить IDLE.app из /Applications/Python 3.2, т. Е. Дважды щелкнуть его значок.Поскольку вы говорите, что каталог по умолчанию для файлов - это ваша папка Documents, я предполагаю, что вы используете второй метод, потому что IDLE.app устанавливает Documents в качестве текущего рабочего каталога, который становится каталогом по умолчанию для * Open * s и* Save * s и автоматически добавляется в качестве первого каталога на Python sys.path, список каталогов, который Python использует для поиска модулей при import ing.

Если вы хотите добавить другие каталогина sys.path, как вы заметили, вы можете использовать переменную окружения PYTHONPATH для этого.Стандартный способ сделать это - добавить определение export PYTHONPATH=... в сценарий запуска оболочки, например .bash_profile.Однако, если вы используете IDLE.app, оболочка не включается, поэтому команды в .bash_profile не имеют никакого эффекта.

Хотя существуют способы изменения переменных среды для приложений с графическим интерфейсом OS X, в данном случае прощерешение состоит в том, чтобы использовать другой метод для вызова IDLE из командной строки сеанса оболочки, используя либо /usr/local/bin/idle3.2, либо, если вы выполнили команду Update Shell Profile в папке /Applications/Python 3.2 (и открыли новый сеанс терминала), просто idle3.Затем установленная переменная среды PYTHONPATH будет наследоваться этим IDLE.

Кстати, прямого способа изменить начальный текущий рабочий каталог IDLE.app из Documents не существует, кроме изменения кода вIDLE.Если вы запускаете IDLE из командной строки, он наследует текущий рабочий каталог оболочки.

[ОБНОВЛЕНИЕ] Но вместо того, чтобы дурачиться с определением PYTHONPATH, здесь есть другой, еще более простой и, вероятно, лучший подход.это должно работать либо с IDLE.app, либо с командной строкой idle.Он использует преимущества файлов конфигурации пути Python (.pth) и пользовательских каталогов пакетов сайта .Предполагая, что вы используете стандартную сборку Python Framework 3.2 (например, из установщика python.org) в Mac OS X, создайте файл пути для каталога, который вы хотите добавить в sys.path.В терминальной сессии:

mkdir -p ~/Library/Python/3.2/lib/python/site-packages
cd ~/Library/Python/3.2/lib/python/site-packages
cat >my_paths.pth <<EOF
/Users/YOUR_USER_NAME/path/to/your_additional_python_directory_1
/Users/YOUR_USER_NAME/path/to/your_additional_python_directory_2
EOF

Теперь, когда вы запускаете этот Python 3.2 или IDLE под своим именем пользователя, каталоги, добавленные вами в файл .pth, будут автоматически добавляться в sys.path.

Кстати, точный путь к каталогу пользовательских пакетов сайта для версий Python более ранних, чем 3.2 или 2.7, может немного отличаться.Кроме того, в других системах Unix-y расположение по умолчанию для пользовательского каталога site-package: ~/.local/lib/python3.2/site-packages.

0 голосов
/ 08 декабря 2011

PYTHONPATH - это переменная окружения (см. здесь и здесь ).У меня нет Mac, но из потоков, с которыми я связан, введите в командной строке что-то вроде

launchctl setenv PYTHONPATH=/Me/Documents/mydir:$PYTHONPATH

, чтобы вы могли запускать скрипты Python из /Me/Documents/mydir.В качестве альтернативы, поместите эту строку в файл с именем .bashrc в вашем домашнем каталоге (~), и этот путь будет устанавливаться каждый раз, когда вы открываете терминал.См. здесь для краткого введения в .bashrc и другие .bash* файлы.Надеюсь, что это поможет.

РЕДАКТИРОВАТЬ См. Также этот вопрос.

...