Closed lambdalisue closed 6 years ago
This PR closes the following issues
None of the followings found ["libpcap.a", "libpcap.so", ..., "wpcap.lib"]
pcap/pcap.h
$ python setup.py bdist Found pcap headers in ..\wpdpack\include\pcap.h Found libraries in ..\wpdpack\lib/x64\wpcap.lib found pcap_setdirection found pcap_setnonblock found pcap_compile_nopcap function found pcap_file function running bdist running bdist_dumb running build running build_ext building 'pcap' extension creating build creating build\temp.win-amd64-3.6 creating build\temp.win-amd64-3.6\Release C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I..\wpdpack\include -IC:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\include -IC:\Python36\include -IC:\Python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcpcap.c /Fobuild\temp.win-amd64-3.6\Release\pcap.obj -DWIN32 -DWPCAP -D_CRT_SECURE_NO_WARNINGS pcap.c pcap.c(19904): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26219): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26239): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26240): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26244): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26246): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26253): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26255): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26262): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26264): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26284): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26287): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26294): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26295): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26296): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26300): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26302): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26309): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26311): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26318): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26320): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26327): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26329): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26336): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26338): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26345): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26347): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26354): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26357): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26386): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26391): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26399): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26403): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored pcap.c(26408): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I..\wpdpack\include -IC:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\include -IC:\Python36\include -IC:\Python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcpcap_ex.c /Fobuild\temp.win-amd64-3.6\Release\pcap_ex.obj -DWIN32 -DWPCAP -D_CRT_SECURE_NO_WARNINGS pcap_ex.c pcap_ex.c(134): warning C4311: 'type cast': pointer truncation from 'HANDLE' to 'int' creating C:\Users\alisue\Code\github.com\lambdalisue\pypcap\build\lib.win-amd64-3.6 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:..\wpdpack\lib/x64 /LIBPATH:C:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\libs /LIBPATH:C:\Python36\libs /LIBPATH:C:\Python36 /LIBPATH:C:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" wpcap.lib iphlpapi.lib /EXPORT:PyInit_pcap build\temp.win-amd64-3.6\Release\pcap.obj build\temp.win-amd64-3.6\Release\pcap_ex.obj /OUT:build\lib.win-amd64-3.6\pcap.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\pcap.cp36-win_amd64.lib pcap.obj : warning LNK4197: export 'PyInit_pcap' specified multiple times; using first specification Creating library build\temp.win-amd64-3.6\Release\pcap.cp36-win_amd64.lib and object build\temp.win-amd64-3.6\Release\pcap.cp36-win_amd64.exp Generating code Finished generating code installing to build\bdist.win-amd64\dumb running install running install_lib creating build\bdist.win-amd64 creating build\bdist.win-amd64\dumb creating build\bdist.win-amd64\dumb\Users creating build\bdist.win-amd64\dumb\Users\alisue creating build\bdist.win-amd64\dumb\Users\alisue\Code creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages copying build\lib.win-amd64-3.6\pcap.cp36-win_amd64.pyd -> build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages running install_egg_info running egg_info writing pypcap.egg-info\PKG-INFO writing dependency_links to pypcap.egg-info\dependency_links.txt writing top-level names to pypcap.egg-info\top_level.txt reading manifest file 'pypcap.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'pypcap.egg-info\SOURCES.txt' Copying pypcap.egg-info to build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info running install_scripts creating C:\Users\alisue\Code\github.com\lambdalisue\pypcap\dist creating 'C:\Users\alisue\Code\github.com\lambdalisue\pypcap\dist\pypcap-1.2.1.win-amd64.zip' and adding '.' to it adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pcap.cp36-win_amd64.pyd' adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\dependency_links.txt' adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\PKG-INFO' adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\SOURCES.txt' adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\top_level.txt' removing 'build\bdist.win-amd64\dumb' (and everything under it)
$ python setup.py bdist Found pcap headers in /usr/include/pcap.h Found libraries in /usr/lib/libpcap.dylib found pcap_setdirection found pcap_setnonblock found pcap_compile_nopcap function found pcap_file function running bdist running bdist_dumb running build running build_ext building 'pcap' extension creating build creating build/temp.macosx-10.13-x86_64-3.6 clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I/usr/include -I/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/include -I/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/include/python3.6m -c pcap.c -o build/temp.macosx-10.13-x86_64-3.6/pcap.o clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I/usr/include -I/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/include -I/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/include/python3.6m -c pcap_ex.c -o build/temp.macosx-10.13-x86_64-3.6/pcap_ex.o creating build/lib.macosx-10.13-x86_64-3.6 clang -bundle -undefined dynamic_lookup -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl/lib -L/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl/lib -L/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/lib build/temp.macosx-10.13-x86_64-3.6/pcap.o build/temp.macosx-10.13-x86_64-3.6/pcap_ex.o -L/usr/lib -lpcap -o build/lib.macosx-10.13-x86_64-3.6/pcap.cpython-36m-darwin.so installing to build/bdist.macosx-10.13-x86_64/dumb running install running install_lib creating build/bdist.macosx-10.13-x86_64 creating build/bdist.macosx-10.13-x86_64/dumb creating build/bdist.macosx-10.13-x86_64/dumb/Users creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6 creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6/site-packages copying build/lib.macosx-10.13-x86_64-3.6/pcap.cpython-36m-darwin.so -> build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6/site-packages running install_egg_info running egg_info writing pypcap.egg-info/PKG-INFO writing dependency_links to pypcap.egg-info/dependency_links.txt writing top-level names to pypcap.egg-info/top_level.txt reading manifest file 'pypcap.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'pypcap.egg-info/SOURCES.txt' Copying pypcap.egg-info to build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6/site-packages/pypcap-1.2.1-py3.6.egg-info running install_scripts creating /Users/alisue/Code/github.com/lambdalisue/pypcap/dist Creating tar archive removing 'build/bdist.macosx-10.13-x86_64/dumb' (and everything under it)
import pcap p = pcap.pcap(pcap.findalldevs()[0]) print('non-blocking:', p.getnonblock()) p.setnonblock() print('non-blocking:', p.getnonblock())
non-blocking: False non-blocking: True
Yes this looks good. I tested it on python 2.7.13 and macOS 10.12.6 and it works as expected.
Thanks for putting this together 👍
I also cut a new release and pushed it to pypi.
Thanks for the rapid release!
This PR closes the following issues
70 - Fixed by showing
None of the followings found ["libpcap.a", "libpcap.so", ..., "wpcap.lib"]
and exit with exitcode 168 - Fixed by reading
pcap/pcap.h
as well to determine macros.Windows 10 Pro + Python 3.6
macOS High Sierra + Python 3.6
Check