Что я хочу сделать, так это запустить терминальную сессию с интерпретатором командной строки python и, далее, запустить файл python с помощью интерпретатора, который файл python может располагать где угодно.
Что я хочу сказать, так это то, что у меня есть файл python demo.py
в /home/one/two/
#demo.py
a=10
print("something")
, так что, когда терминал открывается, я вижу сообщение something
, за которым следует приглашение консоли.
something
>>>
Мой подход:
gnome-terminal --python -i ~/home/one/two/demo.py
это дает мне следующий результат
python: can't open file '~/Desktop/pydemo/demo.py': [Errno 2] No such file or directory
Однако, когда я запускаю ту же команду с терминала окно (не открывается в том же каталоге, что и файл demo.py
), оно работает правильно.
Может кто-нибудь объяснить, что здесь происходит, и, если возможно, предложить способ достижения того, что я упомянул выше.
Вы не сказали, КАК вы запускаете эту команду. Если запустить из командной строки, gnome-terminal -- python -i ~/demo.py
будет работать, потому что оболочка превратится в ваш дом, прежде чем аргументы будут переданы в gnome-терминал. Но здесь, в вашем случае, сообщение об ошибке гласит ~/... : not found
: не было оболочки для интерпретации ~, поэтому она была оставлена как есть, и фактически в каталоге нет команды, имя которой является единственным символом ~, в команде happent должно быть начато в.
Либо явно используйте оболочку для интерпретации ~:
gnome-terminal -- sh -c 'exec python -i ~/demo.py'
, либо сделайте это самостоятельно и введите полное имя пути:
gnome-terminal -- python -i /home/me/demo.py