を実行しているLinuxサーバーには異なるPythonバージョンがありますCentos7
。
[xyz@innolx20122]$ python
python python2.7 python3.6 python3.7 python3.7m-config
python2 python3 python3.6m python3.7m
私はpython3.7バージョンだけを使いたかったので、ファイル.bashrc
にエイリアスを作成しました。
alias python=python3.7
Python呼び出しモジュールをインストールし、今後も引き続き使用します。
pip install invoke
デフォルトのPython 2.7の場所にインストールされます。
[xyz@innolx20122 ~]$ pip install invoke
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: invoke in ./.local/lib/python2.7/site-packages (1.4.1)
バージョン 2.7 は **kwargs パラメーターをサポートしていないため、呼び出し操作の実行に問題があります。この問題をどのように解決できますか?
修正する
別のエイリアスを作成しました。
pip=pip3.7
[xyz@innolx20122 ~]$ pip --version
pip 10.0.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
これで pip install inform を実行すると、この問題が発生します。
[xyz@innolx20122 ~]$ pip install invoke
Collecting invoke
Using cached https://files.pythonhosted.org/packages/2c/16/f00efa99ae9f255142a230ce6819c37ae9dd29a7144477c1161cc72d01ed/invoke-1.4.1-py3-none-any.whl
Installing collected packages: invoke
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python3.7/site-packages/invoke'
Consider using the `--user` option or check the permissions.
You are using pip version 10.0.1, however version 20.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
使ってみよう
pip install invoke --user
これにより、その場所にパッケージがインストールされていることがわかります。
[xyz@innolx20122 ~]$ pip インストールコール --user
Requirement already satisfied: invoke in ./.local/lib/python3.7/site-packages (1.4.1)
You are using pip version 10.0.1, however version 20.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[xyz@innolx20122 ~]$ cd ./.local/lib/python3.7/site-packages
[xyz@innolx20122 site-packages]$ ls
invoke invoke-1.4.1.dist-info
[xyz@innolx20122 ~]$ cd /usr/local/lib/python3.7/site-packages/
[xyz@innolx20122 site-packages]$ ls
easy_install.py pip pip-10.0.1.dist-info pkg_resources __pycache__ README.txt setuptools setuptools-39.0.1.dist-info
[xyz@innolx20122 sd-test]$ inv --list
Trace
back (most recent call last):
File "/usr/bin/inv", line 8, in <module>
sys.exit(program.run())
File "/home/xyz/.local/lib/python2.7/site-packages/invoke/program.py", line 373, in run
self.parse_collection()
File "/home/xyz/.local/lib/python2.7/site-packages/invoke/program.py", line 465, in parse_collection
self.load_collection()
File "/home/xyz/.local/lib/python2.7/site-packages/invoke/program.py", line 696, in load_collection
module, parent = loader.load(coll_name)
File "/home/xyz/.local/lib/python2.7/site-packages/invoke/loader.py", line 76, in load
module = imp.load_module(name, fd, path, desc)
File "/home/xyz/developer-workspace/vikrant-xyz/sd-test/tasks/__init__.py", line 5, in <module>
from .airflow import *
File "/home/xyz/developer-workspace/vikrant-xyz/sd--test/tasks/airflow.py", line 57
**airflow_vars,
答え1
いくつかのオプションがあります。
- Python 3.7用にインストールされたpipを指すpip3の別のエイリアスを作成します。
- pip3の使用homedirに独自のpipをインストールして使用してください。
- 使用したい pip へのシンボリックリンクを作成して ~/.local/bin に入れます (そして $PATH にあることを確認)。
完全にユーザーとして実行し、パッケージが所有しているものを上書きしないようにしてください。