为什么subprocess.Popen在使用这个python库时找不到mysqldump?

2024-05-23 17:07:59 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用这个库https://github.com/andersinno/python-database-sanitizer时,我得到一个错误,它无法找到mysqldump,即使它在我的路径中

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


Tags: inpytestvenvliblinecodeusers