Pythonで遭遇する問題とその解決方法
記事の目次
-
-
-
-
-
- 1. ModuleNotFoundError: pip' という名前のモジュールがありません。
- 2. /usr/bin/python: virtualenvwrapper という名前のモジュールがありません。
- 3. TypeError: zinterstore() got multiple values for argument 'aggregate'.
- 4. AssertionError: ビュー関数マッピングが既存のエンドポイント関数を上書きしています。1
- 2. AssertionError: 名前の衝突が発生しました
- 3. DENIED 保護モードが有効で、バインドアドレスが指定されていないため、Redis は保護モードで動作しています。
- 4. IndentationError: 予期しないインデント
- 5. 'DictCursor' オブジェクトには 'commit' という属性がありません。
- 6. SyntaxError: 位置決め引数がキーワード引数の後にある場合
- 7. TypeError: func() got multiple values for argument 'a1'.
- 8. TypeError: タイプセットのオブジェクトは、JSONシリアライザブルではありません。
- 9. TypeError: リストのインデックスはタプルではなく、整数またはスライスでなければなりません。
- 10. TypeError: strptime() 引数 1 は str でなければならず、datetime.datetime であってはならない。
- 11. RecursionError: Pythonオブジェクトの呼び出し中に最大再帰深度を超えた
- 12. ImportError: 親パッケージが不明で相対インポートを試みた。
- 13. RuntimeError: シークレットキーが設定されていないため、セッションを利用することができません。アプリケーションのsecret_keyにユニークで秘密のものを設定してください。
- 14. Twistedインストールエラーの解決に成功
- 15. 名前 'reduce' が定義されていない
- 16. pymysql.err.InternalError: (1698, "ユーザ 'root'@'localhost'" のアクセスが拒否されました)
- 17. Python ウェブプロジェクト uwsgi の実行エラー
- 18. ユニコード・オブジェクトはハッシュ化する前にエンコードする必要があります。
- 19. /usr/bin/python: virtualenvwrapper という名前のモジュールがありません。
- 20. 警告: uWSGI を root として実行しています !!!! (--uid フラグを使用)
- 21. pip3 install face_recognition エラー
- 22. TypeError: Decimal 型のオブジェクトは JSON シリアライズ可能ではありません。
- 23. selenium.common.exceptions.InvalidSessionIdException: メッセージ: 無効なセッションID
- 24. RecursionError: 最大の再帰的深度を超えました。
- 25. ModuleNotFoundError: distutils.util'という名前のモジュールがありません。
-
-
-
-
私のホームページ https://pythoneers.cn
1. ModuleNotFoundError: pip' という名前のモジュールはありません。
原因
There is no pip module. We all know that pip is installed by default when installing python, and pip helps us to install many third-party modules easily, which usually happens when upgrading pip. When you have uninstalled the old version of pip and suddenly other factors interrupt the process of downloading the new version of pip, the installation of the new version fails.
使用方法
easy_install pip3
コマンドでpipをインストールし、インストールが遅い場合は、Tsinghuaのソースを指定して
easy_install -i https://pypi.tuna.tsinghua.edu.cn/simple pip3
そしてもちろん、pipへのリンクは、まず以下の公式サイトから見つけることができます。
easy_install https://files.pythonhosted.org/packages/30/db/9e38760b32e3e7f40cce46dd5fb107b8c73840df38f0046d8e6514e675a1/pip-19.2.3- py2.py3-none-any.whl.
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
2. /usr/bin/python: virtualenvwrapper という名前のモジュールがありません。
source ~/.bashrc
virtualenvwrapperの設定後、有効なコマンドを実行します。
/usr/bin/python
virtualenvwrapperモジュールが存在しない場合。
問題の原因
から
rm -f /usr/bin/python
ここでは、python2 インタプリタが使用されていることがわかります。
解決策
このショートカットを削除する
[root@master ~]# ln -s /usr/local/python373/bin/python3 /usr/bin/python
として、新しいソフトリンクを再作成してください。
conn.zinterstore('dest', 'bosses', 'employees', aggregate=None)
3. TypeError: zinterstore() got multiple values for argument 'aggregate'.
上記の問題は、zinterstoreメソッドを実行したときに発生します。
conn.zinterstore('dest', ['bosses', 'employees'])
この原因は、zinterstoreメソッドのパラメータが間違っているためで、本来は
if view_func is not None:
old_func = self.view_functions.get(endpoint)
if old_func is not None and old_func ! = view_func:
raise AssertionError('View function mapping is overwriting an '
'existing endpoint function: %s' % endpoint)
self.view_functions[endpoint] = view_func
AssertionError: A name collision occurred between blueprints <flask.blueprints.Blueprint object at 0x0000021A675375F8> and <flask. blueprints.Blueprint object at 0x0000021A67537400>. Both share the same name "admin_bp". Blueprints that are created on the fly need unique names.
Create a Blueprint object, example: <kbd>bp = Blueprint('bp', __ name __) </kbd>, the first argument passed in the Blueprint class name is not to be the same name. That is, if one is name = 'bp' and then creates a Blueprint object, it can't be 'bp'.
redis.exceptions.ResponseError: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
4. AssertionError: ビュー関数マッピングが既存のエンドポイント関数を上書きしています。1
エンドポイントのリネームエラー報告。
Open the redis configuration file redis.conf and change protected-mode yes to protected-mode no.
Other: Check if Redis allows requests for a certain ip address, comment out the code bind 127.0.0.1 to indicate that Redis allows requests for all ip's.
Indentation error: unexpected indent. Please check if the code is using unnecessary indentation. This error was reported when the blogger was using the timeit module and the input was not formatted correctly.
2. AssertionError: 名前の衝突が発生しました
def timeit_list(n, loops):
list_setup = """
import numpy
data = [1] * {}
s = 0
""".format(n)
print('list:')
print(timeit.timeit(common_for, list_setup, number=loops))
print(timeit.timeit(common_sum, list_setup, number=loops))
print(timeit.timeit(common_numpy_sum, list_setup, number=loops))
def timeit_list(n, loops):
list_setup = """
import numpy
data = [1] * {}
s = 0
""".format(n)
print('list:')
print(timeit.timeit(common_for, list_setup, number=loops))
print(timeit.timeit(common_sum, list_setup, number=loops))
print(timeit.timeit(common_numpy_sum, list_setup, number=loops))
Check to see if you wrote conn.commit() instead of cursor.commit()
The positional argument should precede the keyword argument
The argument was given multiple values
Sets are not serializable
List indices must be integers or slices, not tuples. List slice format: lst[0:10], not <kbd>lst[1,10]
The strptime class method of the datetime class has two arguments, the first argument the first argument and the second argument are both string types, not datetime types.
Recursion error: max recursion depth exceeded when calling python object
Relative import attempted with no known parent package. This means that relative import requires at least two python files to be in the same package.
The data written to the session is encrypted, and the secret key is used to encrypt the data. Remember to set the secret key value in the configuration file here.
# -*- coding:utf-8 -*-
# @Time : 2019/8/25 16:15
# @Author : Thanlon
# @Email : [email protected]
# @File : settings.py
# @Project : code_count
class Config(object):
SECRET_KEY = 'THANLON'
Installing twisted on a Linux system using pip3 install twisted is not a problem, but on Windows it reports an error, which can be solved by
3. DENIED 保護モードが有効で、バインドアドレスが指定されていないため、Redis は保護モードで動作しています。
pip3 install wheel
ここでは、その方法の1つとして、プロテクトモードを無効にする方法を紹介します。
pip3 install https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/Twisted-19.2.1-cp38-cp38m-win_amd64.whl
reduce is no longer a built-in function in Python 3, it's in functools, so you need to import it here: from functools import reduce
4. IndentationError: 予期しないインデント
grant all privileges on *. * to root@localhost identified by 'the password you set for root';
エラーコードを表示します。
flush privileges;
Traceback (most recent call last):
File "/root/Envs/flask_code_count_venv/lib/python3.7/site-packages/flask/app.py", line 2463, in __call__
return self.wsgi_app(environ, start_response)
File "/root/Envs/flask_code_count_venv/lib/python3.7/site-packages/flask/app.py", line 2441, in wsgi_app
ctx = self.request_context(environ)
File "/root/Envs/flask_code_count_venv/lib/python3.7/site-packages/flask/app.py", line 2358, in request_context
return RequestContext(self, environ)
File "/root/Envs/flask_code_count_venv/lib/python3.7/site-packages/flask/ctx.py", line 292, in __init__
self.url_adapter = app.create_url_adapter(self.request)
File "/root/Envs/flask_code_count_venv/lib/python3.7/site-packages/flask/app.py", line 2173, in create_url_adapter
subdomain=subdomain,
File "/root/Envs/flask_code_count_venv/lib/python3.7/site-packages/werkzeug/routing.py", line 1537, in bind_to_environ
environ["REQUEST_METHOD"],
KeyError: 'REQUEST_METHOD'
[pid: 17362|app: 0|req: 2/3] () {24 vars in 734 bytes} [Tue Nov 5 23:11:13 2019] => generated 0 bytes in 4 msecs ( 500) 0 headers in 0 bytes (0 switches on core 1)
正しいコードです。
The above issue occurs when deploying a flask application
5. 'DictCursor' オブジェクトには 'commit' という属性がありません。
I found out later that uwsgi_params was not introduced. The nginx headers use external uwsgi_params, so referencing the uwsgi_params that come with nginx is fine.
6. SyntaxError: 位置決め引数がキーワード引数に続いています。
Error reported when using md5 encryption
7. TypeError: func() got multiple values for argument 'a1'.
Check if the added salt is converted to byte type, i.e.: SALT = b'xxxxxxx'
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
8. TypeError: タイプセットのオブジェクトはJSONシリアライザブルではありません。
Problem with setting up the virtualenvwrapper script to execute every time a user logs in
9. TypeError: リストのインデックスはタプルではなく、整数またはスライスでなければなりません。
The system did not find the virtualenvwrapper because it is using python, not Python3, and needs to be changed to Python3
10. TypeError: strptime() 引数 1 は str でなければならず、datetime.datetime であってはならない。
Add to ~/.bashrc file: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
(computer-bysj_venv) [root@master computer-bysj]# uwsgi uwsgi.ini
[uWSGI] getting INI configuration from uwsgi.ini
*** WARNING: Can't find section "uwsgi" in INI configuration file uwsgi.ini ***
*** Starting uWSGI 2.0.18 (64bit) on [Sun Dec 29 12:42:06 2019] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-39) on 29 December 2019 04:10:36
os: Linux-3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019
nodename: master
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 2
current working directory: /usr/local/flask_pro/computer-bysj
detected binary path: /root/.virtualenvs/computer-bysj_venv/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 7912
your memory page size is 4096 bytes
detected max file descriptor number: 65535
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
The -s/--socket option is missing and stdin is not a socket.
11. RecursionError: Python オブジェクトの呼び出し中に最大再帰深度を超えました。
Error when starting uwsgi
12. ImportError: 親パッケージが不明で相対インポートを試みた。
Low-level error, uwsgi.ini configuration problem, not adding [uwsgi] to the first line of the uwsgi.ini file
13. RuntimeError: シークレットキーが設定されていないため、セッションを利用することができません。アプリケーションのsecret_keyにユニークで秘密のものを設定してください。
Add [uwsgi] to the first line of the uwsgi.ini file
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip- install-1nstwkah/dlib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-1nstwkah/dlib/setup.py'"'"'; f= getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '& quot;'"'\r\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip- record-rd_c3feb/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7/dlib Check the logs for full command output.
14. Twistedインストールエラーの解決に成功
Installing face_recognition gives an error
ツイストのダウンロードはこちら
Twisted URL
Pythonのバージョンに対応するTwistedのバージョンを選択し、リンクをコピーするか、ローカルにダウンロードし、インストールします。wheelをインストールします。
Failed to install dlib
. Twistedをインストールするには。
You can install the cmake module first, and then install face_recognition
TypeError: Object of type Decimal is not JSON serializable
15. 名前 'reduce' が定義されていない
Error when converting data retrieved from database to json string to frontend
16. pymysql.err.InternalError: (1698, "Access denied for user 'root'@'localhost '").
エラーの原因 pymysqlを使用してデータベースに接続すると、上記のエラーが発生します。
解決方法 rootユーザーに権限を与える。
The sql statement querying the data uses the aggregation function sum, and the type of the data found is Decimal
を実行し、権限を更新してください。
Method 1: Use the int function to convert Decimal to int when serializing to a json string; Method 2: Use pip install simplejson -i https://mirrors.aliyun.com/pypi/simple to install the simplejson module.
17. Python ウェブプロジェクト uwsgi の実行エラー
Error reported while crawling data in selenium
質問元です。
It was found that the selenuim crawl was saved only after closing the browser object
解決策
Before closing the browser object you should use a variable to save the data crawled by selenuim, otherwise it will not work
18. ユニコード・オブジェクトはハッシュ化する前にエンコードする必要があります。
質問元
@app.route('/get_china_data')
def get_china_data():
china_data = get_china_data()
china_lst = []
for item in china_data:
china_lst.append(item)
print(china_data)
return ''
解決策
Low-level error. I was thinking of calling another function to get data, get_china_data, but I didn't realize that it was the same as the function for the route (get_china_data). The end result is that this function is called instead of the function that gets the data
19. /usr/bin/python: virtualenvwrapper という名前のモジュールがありません。
Change the function name
Error reported when creating a new project using PyCharm
問題の発生源
The Python package management tool pip is not installed
問題解決
Use the command "sudo apt install python3-pip" to install
解決策
Add to ~/.bashrc file: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
20. 警告: uWSGIをrootで実行しています ! (--uid フラグを使用してください)
(computer-bysj_venv) [root@master computer-bysj]# uwsgi uwsgi.ini
[uWSGI] getting INI configuration from uwsgi.ini
*** WARNING: Can't find section "uwsgi" in INI configuration file uwsgi.ini ***
*** Starting uWSGI 2.0.18 (64bit) on [Sun Dec 29 12:42:06 2019] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-39) on 29 December 2019 04:10:36
os: Linux-3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019
nodename: master
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 2
current working directory: /usr/local/flask_pro/computer-bysj
detected binary path: /root/.virtualenvs/computer-bysj_venv/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 7912
your memory page size is 4096 bytes
detected max file descriptor number: 65535
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
The -s/--socket option is missing and stdin is not a socket.
質問元
Error when starting uwsgi
問題解決
Low-level error, uwsgi.ini configuration problem, not adding [uwsgi] to the first line of the uwsgi.ini file
解決策
Add [uwsgi] to the first line of the uwsgi.ini file
21. pip3 install face_recognition でエラーが発生する。
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip- install-1nstwkah/dlib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-1nstwkah/dlib/setup.py'"'"'; f= getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '& quot;'"'\r\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip- record-rd_c3feb/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7/dlib Check the logs for full command output.
質問元
Installing face_recognition gives an error
問題解決
Failed to install dlib
解決策
You can install the cmake module first, and then install face_recognition
22. TypeError: Decimal 型のオブジェクトは JSON シリアライズ可能ではありません。
TypeError: Object of type Decimal is not JSON serializable
問題の発生源
Error when converting data retrieved from database to json string to frontend
問題解決
The sql statement querying the data uses the aggregation function sum, and the type of the data found is Decimal
解決策
Method 1: Use the int function to convert Decimal to int when serializing to a json string; Method 2: Use pip install simplejson -i https://mirrors.aliyun.com/pypi/simple to install the simplejson module.
23. selenium.common.exceptions.InvalidSessionIdException: メッセージ: 無効なセッション ID
問題の発生源
Error reported while crawling data in selenium
問題解決
It was found that the selenuim crawl was saved only after closing the browser object
解決策
Before closing the browser object you should use a variable to save the data crawled by selenuim, otherwise it will not work
24. RecursionError: 最大の再帰深度を超えました。
問題の原因:以下のような関数が書かれていた。
@app.route('/get_china_data')
def get_china_data():
china_data = get_china_data()
china_lst = []
for item in china_data:
china_lst.append(item)
print(china_data)
return ''
疑問の解消。
Low-level error. I was thinking of calling another function to get data, get_china_data, but I didn't realize that it was the same as the function for the route (get_china_data). The end result is that this function is called instead of the function that gets the data
解決策
Change the function name
25. ModuleNotFoundError: distutils.util'という名前のモジュールがありません。
質問の出典
Error reported when creating a new project using PyCharm
問題解決
The Python package management tool pip is not installed
回避策
Use the command "sudo apt install python3-pip" to install
関連
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】np.unravel_indexの直感的な説明とは?
-
[解決済み】WindowsError: [Error 126] 指定されたモジュールが見つかりません。
-
[解決済み] git リポジトリの .pyc ファイルを無視する。
-
[解決済み] S3からspark dataframe Pythonにparquetデータを読み込むには?
-
[解決済み] ruby sha 256 hexidigest 値は python が生成するものと異なる。
-
[解決済み] Errno 10060] 接続先が一定時間経過しても適切に応答しないため、接続に失敗しました[closed]。
-
[解決済み] pyodbc.connect のタイムアウト引数は、SQL Server への呼び出しでは無視されます。
-
[解決済み] ロギング設定でsocket.SOCK_STREAMを使用すると「プロトコルがソケットのタイプとして間違っている」と表示される。
-
[解決済み] statsmodels.api が MissingDataError を返す:多変量回帰の適合時に exog に inf または nans が含まれる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: zip 引数 #1 は繰り返しをサポートする必要があります。
-
[解決済み】TypeError: super() takes at least 1 argument (0 given) error is specific to any python version?
-
[解決済み] "SyntaxError: キーワードargの後に非キーワードarg" Pythonでrequests.post()を使用した場合のエラーです。
-
[解決済み] Python スクリプト内の awk コマンド
-
[解決済み] Djangoのモデルでパスワードフィールドを作成する方法
-
[解決済み] Flask SQLAlchemy の Column タイプとオプションの一覧はどこにあるのでしょうか?
-
[解決済み] Python AttributeError: 'tuple' オブジェクトは hashlib.encode に 'encode' 属性がない
-
[解決済み] インデックスを持たないデータフレーム列の最後の値の取得
-
[解決済み] Python AttributeError: 'module' オブジェクトには 'SSL_ST_INIT' という属性がありません。
-
pycharm python: pep 8: 2つの空行を期待したが、1つ見つかった。