Как добавить путь по умолчанию для поиска файлов сценариев Python? - PullRequest
10 голосов
/ 10 мая 2011

У меня всегда были проблемы с поиском правильной настройки Python в Windows.

Я уже установил путь =% path%; C: \ python27, поэтому я 'Я могу открыть .py файлы с помощью Python.Я просто не могу понять, как изменить каталог сохранения.

Например, я сохраняю все свои собственные сценарии в каталоге Documents / Python.Это Win7, так что нет моих документов.Я хотел бы иметь возможность напечатать "HelloWorld.py" в IDLE и он ищет в этой папке любые подходящие имена сценариев.Я не смог выяснить, как добавить этот каталог в путь поиска Python по умолчанию.

Есть идеи?

Вот одна попытка.

>>> import sys 
>>> sys.path 
['C:\\Python27\\Lib\\idlelib', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages'] 
>>> sys.path.append('C:\Users\Jimmy\Documents\Python') 
>>> HelloWorld.py 
Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> HelloWorld.py NameError: name 'HelloWorld' is not defined `

Ответы [ 4 ]

6 голосов
/ 10 мая 2011
import sys
sys.path.append(YOUR_PATH)  # or .insert(0, YOUR_PATH) may give higher priority

или установите переменную окружения $PYTHONPATH

2 голосов
/ 10 мая 2011

Это не так, как работает скрипт.Измените переменную среды %PATH% так, чтобы она содержала каталог, в котором находится данный скрипт, затем запустите скрипт из командной строки, а не IDLE.

1 голос
/ 16 мая 2016

Я положил это в комментарии, но я добавлю в ответ, чтобы быть немного более тщательным. Непонятно, хотите ли вы запустить HelloWorld.py как скрипт или хотите импортировать что-то внутри него. Это две разные вещи, хотя.

Если вы просто хотите запустить HelloWorld.py из cmd или Powershell, вам нужно изменить переменную среды PATH. В Windows это делается в «Мой компьютер»> «Свойства»> «Дополнительно»> «Переменные среды». Нажмите PATH и добавьте путь к папке, содержащей HelloWorld.py, и сохраните изменения. Вам нужно будет перезапустить cmd или Powershell, чтобы увидеть изменения, и эти изменения сохранятся. (Другими словами, это постоянное изменение)

Если вы хотите иметь возможность импортировать содержимое HelloWorld, у вас есть несколько вариантов, но проще всего будет заключить код, который вы хотите импортировать в функцию в HelloWorld.py. Скажем, ваш текущий HelloWorld.py выглядит так:

print "Hello World!"

Измените это на:

def hello_world():
    print "Hello World!"

Затем вам просто нужно добавить путь к папке, содержащей HelloWorld.py, в sys.path. Похоже, вы уже сделали это. Итак, вы сможете импортировать так:

import HelloWorld

HelloWorld.hello_world()
# Will output: "Hello World!"

Если вы все еще хотите, чтобы HelloWorld.py мог работать как скрипт, тогда вам нужно добавить это в конец вашего скрипта:

if __name__ == 'main':
    hello_world()

Это говорит Python импортировать файл без его запуска, если он импортируется. Если он не импортируется, он выполнит код в блоке if.

Надеюсь, это прояснит. Это определенно общий источник путаницы для людей, начинающих с Python.

1 голос
/ 10 мая 2011

Пожалуйста, следуйте инструкциям

sys.path.append(r'C:\Users\Jimmy\Documents\Python') 

Вы не можете произвольно поместить \ в строку.

Когда вы посмотрите на сообщение об ошибке, обратите внимание, что вся система-поддерживаемые элементы пути имеют \\, чтобы избежать значения \.

Учебник покажет вам, как использовать r" строки для достижения этой цели легко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...