Почему не удается subprocess.Popen найти mysqldump при использовании этой библиотеки python? - PullRequest
0 голосов
/ 23 января 2020

При использовании этой библиотеки https://github.com/andersinno/python-database-sanitizer я получаю сообщение об ошибке, что она не может найти mysqldump, даже если она находится в моей переменной PATH.

edwin$ database-sanitizer mysql://root@localhost/test
Traceback (most recent call last):
  File "/Users/edwin/code/test/venv/bin/database-sanitizer", line 11, in <module>
    sys.exit(main())
  File "/Users/edwin/code/test/venv/lib/python3.6/site-packages/database_sanitizer/__main__.py", line 60, in main
    config=config,
  File "/Users/edwin/code/test/venv/lib/python3.6/site-packages/database_sanitizer/dump/__init__.py", line 46, in run
    for line in db_module.sanitize(url=parsed_url, config=config):
  File "/Users/edwin/code/test/venv/lib/python3.6/site-packages/database_sanitizer/dump/mysql.py", line 68, in sanitize
    stdout=subprocess.PIPE,
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mysqldump': 'mysqldump'

Я также пытался в интерпретаторе python, но у меня не было ошибки.

>>> import subprocess
>>> subprocess.Popen('mysqldump')
<subprocess.Popen object at 0x1081e2b38>
>>> Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

Я использую OSX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...