bndr / bndr/pipreqs

Problems with Python 3.11

Open
#333 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
7.5k
Forks
424
PR merge metrics
No merged PRs in 30d

Description

I upgraded my project to Python 3.11 und pipreqs stopped working.

Usually, I call it via REST API call just to list my libs (for dev and debug purposes) and with Python 3.11 it just hangs and nothing happens.
When I run it in debug mode via
`./venv/bin/pipreqs --debug` I got the following output

```
❯ ./venv/bin/pipreqs --debug
DEBUG: Found packages: {'urllib3_secure_extra', 'optparse', 'curio', 'PySide2', 'mmap', 'csv', 'python_anticaptcha', '_cffi_backend', 'bit_generator', 'mypy_extensions', '__pypy__', 'trollius', 'pythoncom', 'brotlicffi', 'copy_reg', 'boto3', 'wsaccel', 'pyximport', 'ConfigParser', 'tempfile', 'zstandard', 'calendar', 'kombu', 'UserList', 'uwsgi', 'xlwt', 'fastparquet', 'tensorflow', 'org', 'msvcrt', '_winreg', 'ctags', 'pickle5', 'polling', 'asynctest', 'trio_typing', 'botocore', 'shutil', 'win32console', 'mpl_toolkits', 'aiodns', 'coverage', 'pdb', 'anydbm', 'tkinter', 'socketserver', 'fnmatch', 'win32process', 'railroad', 'olefile', 'tables', 'contextlib', 'number', '_frozenlist', 'locale', 'gc', 'colorsys', 'cchardet', 'sqlite3', 'ipaddress', '_multiarray_umath', 'pyquery', 'lockfile', 'urllib2', 'polling2', 'winreg', 'socksio', '_thread', 'mtrand', '_cmsgpack', '_testbuffer', 'reprlib', 'PyQt5', 'stringprep', 'numpy_api', 'dis', 'unicodedata2', 'curses', 'cycler', '_setuplibev', 'requirementslib', 'stat', 'orjson', 'cext', '_websocket', 'aio_pika', 'multiprocessing', 'simple_websocket', 'xarray', 'argparse', 'dbm', '_philox', 'base64', 'speedups', 'cStringIO', 'grp', 'imp', 'gmpy', 'pox', 'xdrlib', 'keyring', 'readline', '__future__', 'mimetools', 'pyczmq', 'v8eval', 'watchdog', 'StringIO', 'ast', 'tracemalloc', 'fcntl', 'slack_sdk', 'ntlm', 'monotime', 'pydoc', 'mem_policy', 'pkgutil', '_brotli', 'Tkinter', 'win32pdh', 'math', 'h2', 'IPython', 'dummy_threading', 'trove_classifiers', 'pipes', 'aiocontextvars', 'tabulate', 'UserDict', 'tokio', 'url_parser', 'mimetypes', 'tarfile', 'pymongo_auth_aws', 'win32con', 'numexpr', 'PyQt4', 'winkerberos', 'odf', 'netrc', 'win32api', 'xmlrpclib', 'cgi', 'testsuite', '_typeshed', 'objgraph', '_cffi', 'hypothesis', 'ipywidgets', 'keyword', 'array_interface_testing', 'sphinx', '_ctypes', 'py_compile', 'service_identity', 'atexit', '_proxy_steerable', 'zipfile', 'ordereddict', '_quoting_c', 'kubernetes_validate', 'Queue', '_abcoll', 'UserString', 'PyQt6', 'weakref', 'termios', 'typed_ast', 'Foundation', 'plistlib', 'runpy', 'shelve', '_aix_support', '_continuation', 'fsspec', 'PySide6', 'copy', 'rlcompleter', 'SimpleHTTPServer', 'enchant', 'statsmodels', 'scipy', 'code_generators', 'webbrowser', 'errno', 'blinker', 'adal', 'pip_api', 'qtpy', 'sympy', 'selenium', 'Numeric', 'numarray', 're', 'defusedxml', 'psycopg2', 'argon2pure', 'operator', 'tokenize', 'funcsigs', 'wsproto', 'bisect', '_multidict', 'dummy_thread', 'traitlets', 'xlrd', '_csv', 'gi', 'aioredis', 'marshal', 'gettext', '_umath_tests', 'uuid', '_osx_support', '_http_parser', 'pstats', 'PySide', 'zipimport', 'copyreg', 'getopt', 'kafka', 'openpyxl', 'binascii', 'paramiko', 'encodings', 's3fs', 'heapq', 'syslog', 'kerberos', 'xlsxwriter', 'timeit', 'codecs', 'shlex', 'struct', 'sklearn', 'pandas_datareader', 'unittest2', 'HTMLParser', 'jnius', 'snappy', '_pcg64', '_rust_notify', 'bcryptor', 'geventwebsocket', 'BeautifulSoup', 'pylama', 'codeop', '_device', 'fastpbkdf2', 'urlparse', 'pyu2f', '_generator', 'docutils', 'setuptools_scm', 'lib2to3', '_dummy_thread', 'lzma', 'wmi', 'simplejson', 'java', 'pymongocrypt', 'unicodedata', '_string', 'oauth2client', 'matplotlib', 'outcome', 'argcomplete', 'AppKit', 'cmath', 'pprint', '_pyio', '_frozen_importlib_external', 'urllib', 'genapi', '_frozen_importlib', 'mutex', 'win32com', 'com', 'tomllib', 'fractions', 'htmlentitydefs', 'cftime', 'disco', 'watchgod', 'ctypes', 'cPickle', '__builtin__', 'ttk', 'secrets', 'zlib', 'truststore', 'gmpy2', 'getpass', 'pyxlsb', '_wrappers', 'bdb', '_multibytecodec', 'python_socks', '_greenlet', 'wsgiref', 'difflib', 'numpy_distutils', 'BaseHTTPServer', '_mt19937', 'hashlib', 'tty', 'email', '_sfc64', 'auth_tests', 'selectors2', 'posixpath', 'pylab', 'idna_ssl', 'Cython', 'cares', 'linecache', 'concurrencytest', 'win32_setctime', 'pymysql', 'PyInstaller', 'compileall', 'fileinput', '_collections_abc', 'cProfile', 'ntpath', '_speedups', 'sys', '_psutil_windows', 'OpenSSL', 'gunicorn', '_ufunc', 'kazoo', 'sets', 'pty', 'textwrap', 'asgiref', 'flake8', 'dl', 'pexpect', 'bz2', '_setuputils'}
DEBUG: Found imports: __builtin__, __pypy__, _abcoll, _brotli, _cffi, _cffi_backend, _cmsgpack, _continuation, _device, _frozenlist, _generator, _greenlet, _http_parser, _mt19937, _multiarray_umath, _multidict, _pcg64, _philox, _proxy_steerable, _psutil_windows, _quoting_c, _rust_notify, _setuplibev, _setuputils, _sfc64, _speedups, _typeshed, _ufunc, _umath_tests, _websocket, _winreg, _wrappers, adal, aio_pika, aiocontextvars, aiodns, aioredis, anydbm, AppKit, argcomplete, argon2pure, array_interface_testing, asana_kazoo, asgiref, asynctest, auth_tests, BaseHTTPServer, bcryptor, BeautifulSoup, bit_generator, blinker, boto3, botocore, brotlicffi, cares, cchardet, cext, cftime, code_generators, com, concurrencytest, ConfigParser, copy_reg, coverage, cPickle, cStringIO, ctags, ctypes_snappy, curio, cycler, Cython, defusedxml, disco, dl, docutils, dummy_thread, fastparquet, fastpbkdf2, flake8, Foundation, fsspec, funcsigs, genapi, gevent_websocket, gi, gmpy, gmpy2, gunicorn, h2, htmlentitydefs, HTMLParser, hypothesis, idna_ssl, ipython, ipywidgets, java, jnius, kafka, kerberos, keyring, kombu, kubernetes_validate, lockfile, matplotlib, mem_policy, mimetools, monotime, mpl_toolkits, mtrand, mutex, mypy_extensions, ntlm, numarray, number, Numeric, numexpr, numpy_api, numpy_distutils, oauth2client, objgraph, odfpy, olefile, openpyxl, ordereddict, org, orjson, outcome, pandas_datareader, paramiko, pexpect, pickle5, pip_api, polling, polling2, pox, psycopg2, pyczmq, pyenchant, PyInstaller, pylab, pylama, pymongo_auth_aws, pymongocrypt, pymysql, pyOpenSSL, PyQt4, PyQt5, PyQt6, pyquery, PySide, PySide2, PySide6, python_anticaptcha, python_socks, pythoncom, pyu2f, pyxlsb, qtpy, Queue, railroad, requirementslib, s3fs, scikit_learn, scipy, selectors2, selenium, service_identity, sets, setuptools_scm, simple_websocket, SimpleHTTPServer, simplejson, slack_sdk, socksio, speedups, Sphinx, statsmodels, StringIO, sympy, tables, tabulate, tensorflow, testsuite, Tkinter, tokio, tomllib, traitlets, trio_typing, trollius, trove_classifiers, truststore, ttk, typed_ast, unicodedata2, unittest2, url_parser, urllib2, urllib3_secure_extra, urlparse, UserDict, UserList, UserString, uwsgi, v8eval, watchdog, watchgod, win32_setctime, win32api, win32com, win32con, win32console, win32pdh, win32process, winkerberos, wmi, wsaccel, wsproto, xarray, xlrd, xlsxwriter, xlwt, xmlrpclib, zstandard
DEBUG: Getting packages information from Local/PyPI
DEBUG: Starting new HTTPS connection (1): pypi.python.org:443
DEBUG: https://pypi.python.org:443 "GET /pypi/__builtin__/json HTTP/1.1" 301 122
DEBUG: Starting new HTTPS connection (1): pypi.org:443
DEBUG: https://pypi.org:443 "GET /pypi/-builtin-/json HTTP/1.1" 404 24
DEBUG: Package __builtin__ does not exist or network problems
DEBUG: Starting new HTTPS connection (1): pypi.python.org:443
DEBUG: https://pypi.python.org:443 "GET /pypi/__pypy__/json HTTP/1.1" 301 122

... (the http calls continue for some time)

```

Is this a bug, or do I make a mistake?
It worked perfectly with Python 3.10

I can provide more information if needed

Contributor guide

Open the contributing guide

Research direction

Reproduce the hang with Python 3.11 using `./venv/bin/pipreqs --debug`, then inspect the CLI entry point and the code that queries PyPI after imports are collected. Compare the behavior with Python 3.10 and verify that the command completes without repeated invalid package requests while still listing the project's dependencies.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.