Saki0506
@Saki0506 (さき おぐら)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

よく使うpython実行コマンドをbashにaliasで登録したい

解決したいこと

よく使うコマンドをbashにaliasで登録したいです。
引数はエイリアスでは取れずに関数を使うと書いてあった記事を見たので、pythonで書いて引数をとってからsubprocess.runで実行できるようにしようとしました。

import subprocess

lib = input("Please type library you want to install: ")
lib = "/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m pip install " + lib
subprocess.run(lib)

エイリアスコマンド
bashの変更前に下記のコマンドで正常に動くか試したかったのですがエラーが出ました。

alias idle_i=python3 /Users/bananafish/Documents/python_test/idle/idle_install.py

エラーメッセージ

Python 3.9.2 (v3.9.2:1a79785e3e, Feb 19 2021, 09:06:10) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

#"help", "copyright", "credits" or "license"の実行結果

>>> help()

Welcome to Python 3.9's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at https://docs.python.org/3.9/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To quit this help utility and
return to the interpreter, just type "quit".

To get a list of available modules, keywords, symbols, or topics, type
"modules", "keywords", "symbols", or "topics".  Each module also comes
with a one-line summary of what it does; to list the modules whose name
or summary contain a given string such as "spam", type "modules spam".
>>> copyright
Copyright (c) 2001-2021 Python Software Foundation.
All Rights Reserved.

Copyright (c) 2000 BeOpen.com.
All Rights Reserved.

Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.

Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved.
>>> credits
    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
    for supporting Python development.  See www.python.org for more information.
>>> license
Type license() to see the full license text

エラーは出るのですが解決策がわからなかったのでもしわかる方がいましたら教えていただけると助かります。

少し質問の趣旨からずれますが、これをやる経緯としてはIDLEとVS CODEで使用しているpythonのバージョンが統一できないのでモジュールを2回インストールしなければならないためです。

0

2Answer

二重引用符で囲ってみてください。

alias idle_i="python3 /Users/bananafish/Documents/python_test/idle/idle_install.py"
0Like

Comments

  1. @Saki0506

    Questioner

    ありがとうございます!

以下のことをしておけばわざわざsubprocessを使わなくてもスクリプト名を指定するだけで実行可能となります。

  • pythonスクリプトの先頭行にshebang(#!/usr/bin/pythonなど)を加える。
  • スクリプト自身に実行可能属性を付ける。
  • スクリプトの保存してあるディレクトリをPATHに加える。
0Like

Your answer might help someone💌