Запуск Python в терминале без суффикса

Мне кажется, что это невероятно легко исправить, но по какой-то причине это не так.

Я хочу запустить программу в Linux, которая открывает файл python filename.py, написав:

python3 filename arg

но это работает, только если я напишу:

python3 filename.py arg

Есть ли простой способ запустить его без добавления расширения? И без полного удаления расширения? Я бы вообще не подумал, что это проблема, но вот мы здесь. Благодарен за помощь!

Какое сообщение об ошибке вы получаете?

Stephen M. Webb 15.03.2018 15:03

Почему? Кроме того, что, если в том же каталоге есть файл с именем «filename» (без .py)? Кроме того, решает ли python3 -m filename arg вашу проблему?

Aran-Fey 15.03.2018 15:04

python3: невозможно открыть файл isConnected: [Errno 2] Нет такого файла или каталога. Я уверен, что нахожусь в правильном каталоге!

T96 15.03.2018 15:05
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
98
2

Ответы 2

Ваш файл называется filename.py, поэтому вы называете его python3 filename.py. Если вы хотите вызвать его с помощью python3 filename, вам нужно переименовать файл.

Единственное, что вы можете сделать, - это вызвать Python с переключателем -m, который попытается импортировать модуль с таким именем, то есть python3 -m filename. Это должно работать без переименования файла.

Ха. Значит, с моим заданием что-то не так! В требованиях указано, что то, что я описал, должно быть возможным, но после всего времени, которое я потратил на это, я чувствую, что вы правы. Думаю, где-то есть опечатка или что-то в этом роде! Благодарю за разъяснение!

T96 15.03.2018 15:30

Во-первых, если вы запустите свой скрипт python с помощью shebang, вам не нужно будет вводить «python3» перед именем файла каждый раз, когда вы хотите запустить код.

`#!/usr/bin/env python3'

Во-вторых, если вы создаете файл setup.py в том же каталоге. Затем вы можете установить свой скрипт локально, используя: $ sudo pip3 install -e . из вашего каталога.

После этого вы сможете запускать свой скрипт из любого места в терминале, используя: $ myscript args

Подробнее о создании установочного файла здесь: https://python-packaging-user-guide.readthedocs.io/tutorials/distributing-packages/#setup-py

и пример установочного файла здесь: https://github.com/pypa/sampleproject/blob/master/setup.py

Другие вопросы по теме