TritonDataCenter / pkgsrc

NetBSD/pkgsrc fork for our binary package repositories
https://pkgsrc.smartos.org/
132 stars 51 forks source link

python virtualenv seems broken on mac M1 #319

Open bahamat opened 2 years ago

bahamat commented 2 years ago

Installing packages using pip into python virtual environments isn't working for me, at least for any packages I've tried.

I don't know if this is because the requested package needs to be updated to recognize M1, a bug in virtualenv itself, a bug in python itself, or if it's just something with pkgsrc python on M1.

Steps to reproduce:

wdir=$(mktemp)
cd $wdir
virtualenv py-venv
source ./py-venv/bin/activate
pip install <package>

Package install fails with something similar to:

ERROR: Exception:
Traceback (most recent call last):
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 164, in exc_logging_wrapper
    status = run_func(*args)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 339, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 93, in resolve
    collected.requirements, max_rounds=try_to_avoid_resolution_too_deep
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 482, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 374, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 214, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 205, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/structs.py", line 151, in __bool__
    return bool(self._sequence)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
    return any(self)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
    candidate = func()
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
    version=version,
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 287, in __init__
    version=version,
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
    self.dist = self._prepare()
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
    dist = self._prepare_distribution()
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 292, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 482, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 550, in _prepare_linked_requirement
    self.build_isolation,
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 58, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 47, in prepare_distribution_metadata
    self._install_build_reqs(finder)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 106, in _install_build_reqs
    build_reqs = self._get_build_requires_wheel()
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 83, in _get_build_requires_wheel
    return backend.get_requires_for_build_wheel()
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/pep517/wrappers.py", line 173, in get_requires_for_build_wheel
    'config_settings': config_settings
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/pep517/wrappers.py", line 332, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/sysconfig.py", line 454, in _init_posix
    _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
ModuleNotFoundError: No module named '_sysconfigdata__darwin_darwin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/bahamat/foo/py-venv/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 89, in _build_backend
    obj = import_module(mod_path)
  File "/Users/bahamat/foo/py-venv/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/__init__.py", line 18, in <module>
    from setuptools.dist import Distribution
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/dist.py", line 36, in <module>
    import setuptools.command
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/command/__init__.py", line 1, in <module>
    from distutils.command.bdist import bdist
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/command/bdist.py", line 24, in <module>
    class bdist(Command):
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/command/bdist.py", line 32, in bdist
    "(default: %s)" % get_platform()),
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/util.py", line 110, in get_platform
    return get_host_platform()
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/util.py", line 95, in get_host_platform
    distutils.sysconfig.get_config_vars(),
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/sysconfig.py", line 498, in get_config_vars
    func()
  File "/private/var/folders/rn/rd89mntn58l5tldhb6kgwpzm0000gn/T/pip-build-env-z5fap1w6/overlay/lib/python3.7/site-packages/setuptools/_distutils/sysconfig.py", line 458, in _init_posix
    '_sysconfigdata', globals(), locals(), ['build_time_vars'], 0)
ModuleNotFoundError: No module named '_sysconfigdata'

Packages known to fail:

Packages known to work: