Closed fansonfong closed 1 year ago
Hi.
This is the issue we worked with few FastAPI devs on the subject: https://github.com/tiangolo/fastapi/issues/701 and the outcome of that issue was a simple middleware that you can use in your FastAPI(in fact any ASGI) application:
Hi.
This is the issue we worked with few FastAPI devs on the subject: tiangolo/fastapi#701 and the outcome of that issue was a simple middleware that you can use in your FastAPI(in fact any ASGI) application:
Hi @sumerc , thank you for your answer, however, I cannot install yappi in my python project with poetry as dependency management tool. I tried with different yappi version, but still failed. Here is the error stack trace in terminal:
source /Users/frank/Desktop/my-python-project/.venv/bin/activate
/Users/frank/Library/Python/3.8/bin/poetry add yappi
Using version ^1.3.3 for yappi
Updating dependencies
Resolving dependencies... (0.4s)
Package operations: 1 install, 0 updates, 0 removals
• Installing yappi (1.3.3): Failed
EnvCommandError
Command ['/Users/frank/Desktop/my-python-project/.venv/bin/pip', 'install', '--no-deps', 'file:///Users/frank/Library/Caches/pypoetry/artifacts/f0/33/32/1e69af583ac557e41859c1bc9b67bc2c90376b7e9be988885c2f993cd8/yappi-1.3.3.tar.gz'] errored with the following return code 1, and output:
Processing /Users/frank/Library/Caches/pypoetry/artifacts/f0/33/32/1e69af583ac557e41859c1bc9b67bc2c90376b7e9be988885c2f993cd8/yappi-1.3.3.tar.gz
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: yappi
Building wheel for yappi (setup.py): started
Building wheel for yappi (setup.py): finished with status 'error'
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [71 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-11-x86_64-cpython-39
copying yappi/yappi.py -> build/lib.macosx-11-x86_64-cpython-39
running build_ext
building '_yappi' extension
creating build/temp.macosx-11-x86_64-cpython-39
creating build/temp.macosx-11-x86_64-cpython-39/yappi
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/frank/Desktop/my-python-project/.venv/include -I/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c yappi/_yappi.c -o build/temp.macosx-11-x86_64-cpython-39/yappi/_yappi.o
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/private/var/folders/tx/yx40gd_107ndmpszb91zqbvh0000gn/T/pip-req-build-qv5jvq9w/setup.py", line 65, in <module>
setup(
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
return distutils.core.setup(**attrs)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
return run_commands(dist)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
dist.run_commands()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
self.run_command(cmd)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
self.run_command('build')
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 136, in run
self.run_command(cmd_name)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 79, in run
_build_ext.run(self)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 339, in run
self.build_extensions()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 448, in build_extensions
self._build_extensions_serial()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 473, in _build_extensions_serial
self.build_extension(ext)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 202, in build_extension
_build_ext.build_extension(self, ext)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 528, in build_extension
objects = self.compiler.compile(sources,
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py", line 574, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py", line 173, in _compile
self.spawn(compiler_so + cc_args + [src, '-o', obj] +
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py", line 917, in spawn
spawn(cmd, dry_run=self.dry_run, **kwargs)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py", line 56, in spawn
proc = subprocess.Popen(cmd, env=env)
File "/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 947, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 1739, in _execute_child
env_list.append(k + b'=' + os.fsencode(v))
File "/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 810, in fsencode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for yappi
Running setup.py clean for yappi
Failed to build yappi
Installing collected packages: yappi
Running setup.py install for yappi: started
Running setup.py install for yappi: finished with status 'error'
error: subprocess-exited-with-error
× Running setup.py install for yappi did not run successfully.
│ exit code: 1
╰─> [75 lines of output]
running install
/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build
creating build/lib.macosx-11-x86_64-cpython-39
copying yappi/yappi.py -> build/lib.macosx-11-x86_64-cpython-39
running build_ext
building '_yappi' extension
creating build/temp.macosx-11-x86_64-cpython-39
creating build/temp.macosx-11-x86_64-cpython-39/yappi
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/frank/Desktop/my-python-project/.venv/include -I/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c yappi/_yappi.c -o build/temp.macosx-11-x86_64-cpython-39/yappi/_yappi.o
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/private/var/folders/tx/yx40gd_107ndmpszb91zqbvh0000gn/T/pip-req-build-qv5jvq9w/setup.py", line 65, in <module>
setup(
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
return distutils.core.setup(**attrs)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
return run_commands(dist)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
dist.run_commands()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
self.run_command(cmd)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/command/install.py", line 68, in run
return orig.install.run(self)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py", line 670, in run
self.run_command('build')
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 136, in run
self.run_command(cmd_name)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 79, in run
_build_ext.run(self)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 339, in run
self.build_extensions()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 448, in build_extensions
self._build_extensions_serial()
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 473, in _build_extensions_serial
self.build_extension(ext)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 202, in build_extension
_build_ext.build_extension(self, ext)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 528, in build_extension
objects = self.compiler.compile(sources,
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py", line 574, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py", line 173, in _compile
self.spawn(compiler_so + cc_args + [src, '-o', obj] +
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py", line 917, in spawn
spawn(cmd, dry_run=self.dry_run, **kwargs)
File "/Users/frank/Desktop/my-python-project/.venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py", line 56, in spawn
proc = subprocess.Popen(cmd, env=env)
File "/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 947, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 1739, in _execute_child
env_list.append(k + b'=' + os.fsencode(v))
File "/usr/local/Cellar/python@3.9/3.9.1_7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 810, in fsencode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> yappi
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
at ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/utils/env.py:1195 in _run
1191│ output = subprocess.check_output(
1192│ cmd, stderr=subprocess.STDOUT, **kwargs
1193│ )
1194│ except CalledProcessError as e:
→ 1195│ raise EnvCommandError(e, input=input_)
1196│
1197│ return decode(output)
1198│
1199│ def execute(self, bin, *args, **kwargs):
Failed to add packages, reverting the pyproject.toml file to its original content.
We have recently released a new version of yappi (1.3.6
) that has wheels compiled for most of the platforms. I would suggest using that version.
I am closing the issue as I have suggested a way to use a middleware for FastAPI.
I am new to yappi and fastapi, I want to use yappi to profile my fastapi app with uvicorn as WSGI server, I googled it for a while and also checked yappi official site, but failed to find a direct solution for this. Does anyone share to me how to use yappi in fastapi? Super thx.