sumerc / yappi

Yet Another Python Profiler, but this time multithreading, asyncio and gevent aware.
MIT License
1.45k stars 73 forks source link

Generate Wheels for Windows #45

Closed RussAbbott closed 2 years ago

RussAbbott commented 4 years ago

> pip install yappi Collecting yappi Using cached https://files.pythonhosted.org/packages/37/dc/86bbe1822cdc6dbf46c644061bd24217f6a0f056f00162a3697c9bea7575/yappi-1.2.3.tar.gz Installing collected packages: yappi Running setup.py install for yappi ... error ERROR: Command errored out with exit status 1: command: 'c:\users\rabbott\appdata\local\programs\python\python38-32\python.exe\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\rabbott\AppData\Local\Temp\pip-install-q4kk7o84\yappi\setup.py'"'"'; file='"'"'C:\Users\rabbott\AppData\Local\Temp\pip-install-q4kk7o84\yappi\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\rabbott\AppData\Local\Temp\pip-record-yukv2gvu\install-record.txt' --single-version-externally-managed --compile cwd: C:\Users\rabbott\AppData\Local\Temp\pip-install-q4kk7o84\yappi\ Complete output (9 lines): running install running build running build_py creating build creating build\lib.win32-3.8 copying yappi\yappi.py -> build\lib.win32-3.8 running build_ext building '_yappi' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/

ERROR: Command errored out with exit status 1: 'c:\users\rabbott\appdata\local\programs\python\python38-32\python.exe\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\rabbott\AppData\Local\Temp\pip-install-q4kk7o84\yappi\setup.py'"'"'; file='"'"'C:\Users\rabbott\AppData\Local\Temp\pip-install-q4kk7o84\yappi\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\rabbott\AppData\Local\Temp\pip-record-yukv2gvu\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.

sumerc commented 4 years ago

Hi, I am sorry I do not remember the still part but Yappi currently does only support source dist. There is an open issue for having wheel distro.: https://github.com/sumerc/yappi/issues/18.

For compiling extensions on Windows, you just need to install Microsoft Visual C++ 14.0 is required and that is all.

I will work on it hopefully whenever I find time :(

sm-Fifteen commented 4 years ago

Right, I noted this down when I tried installing yappi on a Windows server and it turned out to now have those dependencies installed

# Will require a Visual C++ 14.X compiler: https://wiki.python.org/moin/WindowsCompilers
# Install:
#     * Visual C++ Build tools core features (included)
#     * Visual C++ 20XX Redistributable Update (included)
#     * VC++ 20XX v14X build tools
#     * Windows 10 SDK
# For a total of ~4GBs
# What have I done??!

The Visual Studio build tools aren't easy to find on the current website either, they're at the very bottom of the page for me: image

You're supposed to download and install "Build Tools for Visual Studio 2019" from that list, select the "C++ build tools" workload and then install the modules listed above (though the names have the annoying tendency to vary).

image

And you're thinking about skipping the Windows 10 SDK because that thing alone is 3GBs, I tried. As it turns out, you'll actually need it.

sumerc commented 4 years ago

Hmm.. Did not know this is that hard!

Maybe generating a wheel(at least for Windows right now) is a good idea.

guilt commented 3 years ago

@sumerc Can you please make a release? :) I'd also appreciate a source (sdist) release at least, because I am able to pip install on Windows myself.

I require to use gevent/greenlet functionality, which was merged ~3 weeks ago. I'd really appreciate an interim release for it. :)

sumerc commented 3 years ago

Hey @guilt, it is hopefully coming today.

sumerc commented 3 years ago

A new version 1.3.0 is released containing gevent support.

sumerc commented 2 years ago

With version of 1.3.6, we finally have wheel support.