2016-02-09 2 views
2

Я собираюсь начать работу (на C# .NET), где опыт работы с Python является плюсом. Я читал об этом год-два назад и взял еще одну книгу (Python 3 Object Oriented Programming от Dusty Phillips). Я нахожусь в первом примере кода и имею действительно тупую проблему.Проблема с использованием пользовательского кода из отдельного файла

Я создал свой первый класс в отдельном файле first_class.py. Он сохраняется в моем C: \ Docs \ Непрерывное образование \ объектно-ориентированный Python \ Глава 2 папки:

class MyFirstClass: 
    pass 

Затем он говорит "запустить команду python -i first_class.py". Я открываю консоль? Python 3.5? (если это то, что он называется), и поставьте это там. Я не ожидал, что он сработает, потому что он выполняется из другой папки, кроме файла.

Я попытался выполнить команду еще раз, с полностью квалифицированным расположением файла с кавычками и без него, но ни один из них они работали. Увидев несколько других ответов, я пробовал все три (без папки, с кавычками и без кавычек), но без расширения .py, и это не сработает. Все эти команды до сих пор дается следующее сообщение об ошибке с ошибкой указывает на конец слова «first_class»:

SyntaxError: invalid syntax

Я попытался опуская python часть команды, так как я уже в Python программы, но это тоже не работает.

Далее я нашел this answer и изменил «текущий каталог» на папку, указанную выше. То же самое касается и без python и/или .py.

Я пробовал использовать функцию import. Это не дает никаких ошибок, поэтому я думал, что это сработало. Я пошел к следующей команде в книге:

>>>a = MyFirstClass() 

К сожалению, дал следующую ошибку:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>

NameError: name 'MyFirstClass' is not defined

я уверен, что я просто отсутствует что-то до смешного просто. Если это дубликат, обязательно отпустите.

+0

Если вы импортировали 'first_class', то вы можете получить доступ к' first_class .MyFirstClass'. –

+0

Вам нужно запустить команду из интерфейса командной строки. В Windows это командная строка. –

+0

@PeterWood Отлично! Это работает! Спасибо. Но что такое с 'python -i first_class'? Я буду рад использовать 'from' /' import', но был бы рад узнать хотя бы цель первой команды, которую он мне дал. – krillgar

ответ

2

Когда текст говорит, что запустите python -i /path/to/file, он ожидает, что вы запустите его из оболочки, а не из консоли python.

Флаг -i - это способ передать файл или список файлов на python, который будет запущен, а затем сбрасывать вас в интерактивную подсказку. Любой код в файле будет находиться в глобальном пространстве имен, как если бы вы ввели его в интерактивную консоль.

Открывают CMD оболочку (или Powershell) и запустите:

python -i "C:\Docs\Continuing Education\Object Oriented Python\Chapter 2\first_class.py" 

Тогда вы должны быть в состоянии назвать ваш класс

a = MyFirstClass() 
+0

Когда я это делаю, я получаю ошибку '' python '' не распознается как внутренняя или внешняя команда, оперативная программа или пакетный файл. 'Нужно ли мне запускать это в cmd из папки, в которой живет интерактивная консоль python? – krillgar

+0

'C: \ python35' не должно быть в вашем системном пути. Вам нужно будет предоставить полный путь к интерпретатору python. Вместо 'python' используйте' C: \ python35 \ python.exe' или везде, где вы установили python. –

+0

В качестве альтернативы вы можете отредактировать переменную PATH вашей системы, чтобы включить каталог, в который содержится 'python.exe'. –

Смежные вопросы