pipenv install google-ads produces an error:

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. This is likely caused by a bug in google-ads. Report this to its maintainers. ✘ Installation Failed 

This is the whole thing:

% pipenv install google-ads Creating a virtualenv for this project... Pipfile: /Users/ralf/code/test_snippets/20-12-10_google_ads/Pipfile Using /usr/local/bin/python3.9 (3.9.0) to create virtualenv... ⠦ Creating virtual environment...created virtual environment CPython3.9.0.final.0-64 in 325ms   creator CPython3Posix(dest=/Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj, clear=False, global=False)   seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/ralf/Library/Application Support/virtualenv)     added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1   activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator ✔ Successfully created virtual environment!  Virtualenv location: /Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj Installing google-ads... Error:  An error occurred while installing google-ads! Error text: Processing /Users/ralf/Library/Caches/pipenv/wheels/0a/09/22/d4a45ac4200d9c68a5215e554d4181b51af2c01b4f16232b5c/google_ads-8.0.0-py3-none-any.whl Collecting googleapis-common-protos<2.0.0,>=1.5.8   Using cached googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB) Collecting google-auth-oauthlib<1.0.0,>=0.3.0   Using cached google_auth_oauthlib-0.4.2-py2.py3-none-any.whl (18 kB) Collecting protobuf<4.0.0,>=3.13.0   Using cached protobuf-3.14.0-py2.py3-none-any.whl (173 kB) Collecting google-api-core<2.0.0,>=1.14.0   Using cached google_api_core-1.23.0-py2.py3-none-any.whl (91 kB) Processing /Users/ralf/Library/Caches/pipenv/wheels/69/60/81/5cd74b8ee068fbe9e04ca0d53148f28f5c6e2c5b177d5dd622/PyYAML-5.3.1-cp39-cp39-macosx_11_0_x86_64.whl Requirement already satisfied, skipping upgrade: setuptools>=40.3.0 in /Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/lib/python3.9/site-packages (from google-ads->-r /var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pipenv-p0t2erav-requirements/pipenv-xefzspt6-requirement.txt (line 1)) (50.3.2) Collecting grpcio<2.0.0,>=1.33.2   Using cached grpcio-1.34.0.tar.gz (21.0 MB)     ERROR: Command errored out with exit status 1:      command: /Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-install-woj2xbsv/grpcio/setup.py'"'"'; __file__='"'"'/private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-install-woj2xbsv/grpcio/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-pip-egg-info-d7h_fmnt          cwd: /private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-install-woj2xbsv/grpcio/     Complete output (9 lines):     Traceback (most recent call last):       File "<string>", line 1, in <module>       File "/private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-install-woj2xbsv/grpcio/setup.py", line 359, in <module>         if mac_target and (pkg_resources.parse_version(mac_target) <       File "/Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/lib/python3.9/site-packages/pkg_resources/__init__.py", line 113, in parse_version         return packaging.version.Version(v)       File "/Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py", line 275, in __init__         match = self._regex.search(version)     TypeError: expected string or bytes-like object     ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. This is likely caused by a bug in google-ads. Report this to its maintainers. ✘ Installation Failed  

I do not know much about pipenv, I am just using it – so far without any problems. Now I started from scratch and ran brew update, brew outdated and brew upgrade before.

How do I report that to its maintainers best, and what does "its" mean, Google Ads or Pipenv? Is there something else I could do?

Update:

Following tai271828's advice here are some further information about the system I am using:

  • I just updated to Mac OS 11.1 (20C69) (so it probably was 11.01 before)
  • python --version --> Python 2.7.16
  • which python --> /usr/bin/python
  • which python3 --> /usr/local/bin/python3
  • python3 --version --> Python 3.9.0
  • which pipenv --> /usr/local/bin/pipenv
  • which pip --> /usr/local/bin/pip
  • which pip3 --> /usr/local/bin/pip3

I used homebrew to install Python 3 and then pip3 install pipenv.

Update 2:

With simply pip (instead of pipenv) I first ran into the same error, but after updating pip, it worked fine. This was my input:

python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install google-ads 

Update 3:

I tried to follow tai271828's advise, to update my pip in my pipenv env prior to installing the google-ads package. These were my commands:

pipenv --rm pipenv shell pip insall --upgrade pip exit pipenv install google-ads 

The error message still looks similar:

Installing google-ads... Adding google-ads to Pipfile's [packages]... ✔ Installation Succeeded  Pipfile.lock (16c839) out of date, updating to (f55075)... Locking [dev-packages] dependencies... Locking [packages] dependencies... Building requirements... Resolving dependencies... ✘ Locking Failed!  ERROR:pip.subprocessor:Command errored out with exit status 1:  command: /Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-resolver-p0oskrkm/grpcio/setup.py'"'"'; __file__='"'"'/private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-resolver-p0oskrkm/grpcio/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-resolver-p0oskrkm/grpcio/pip-egg-info      cwd: /private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-resolver-p0oskrkm/grpcio/ Complete output (9 lines): Traceback (most recent call last):   File "<string>", line 1, in <module>   File "/private/var/folders/nc/s6kd50kj3gdg81vhy9qwddkw0000gn/T/pip-resolver-p0oskrkm/grpcio/setup.py", line 359, in <module>     if mac_target and (pkg_resources.parse_version(mac_target) <   File "/Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/lib/python3.9/site-packages/pkg_resources/__init__.py", line 113, in parse_version     return packaging.version.Version(v)   File "/Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py", line 275, in __init__     match = self._regex.search(version) TypeError: expected string or bytes-like object ---------------------------------------- Traceback (most recent call last):   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 764, in <module>     main()   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 758, in main     _main(parsed.pre, parsed.clear, parsed.verbose, parsed.system, parsed.write,   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 741, in _main     resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev)   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 702, in resolve_packages     results, resolver = resolve(   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 684, in resolve     return resolve_deps(   File "/usr/local/lib/python3.9/site-packages/pipenv/utils.py", line 1395, in resolve_deps     results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(   File "/usr/local/lib/python3.9/site-packages/pipenv/utils.py", line 1108, in actually_resolve_deps     resolver.resolve()   File "/usr/local/lib/python3.9/site-packages/pipenv/utils.py", line 823, in resolve     results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/piptools/resolver.py", line 180, in resolve     has_changed, best_matches = self._resolve_one_round()   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/piptools/resolver.py", line 268, in _resolve_one_round     their_constraints.extend(self._iter_dependencies(best_match))   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/piptools/resolver.py", line 383, in _iter_dependencies     dependencies = self.repository.get_dependencies(ireq)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 229, in get_dependencies     legacy_results = self.get_legacy_dependencies(ireq)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 350, in get_legacy_dependencies     results, ireq = self.resolve_reqs(   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 306, in resolve_reqs     results = resolver._resolve_one(reqset, ireq)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/legacy_resolve.py", line 339, in _resolve_one     abstract_dist = self._get_abstract_dist_for(req_to_install)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/legacy_resolve.py", line 287, in _get_abstract_dist_for     abstract_dist = self.preparer.prepare_linked_requirement(req)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 508, in prepare_linked_requirement     abstract_dist = _get_prepared_distribution(   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 95, in _get_prepared_distribution     abstract_dist.prepare_distribution_metadata(finder, build_isolation)   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/distributions/sdist.py", line 40, in prepare_distribution_metadata     self.req.prepare_metadata()   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 564, in prepare_metadata     self.metadata_directory = self._generate_metadata()   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 538, in _generate_metadata     return generate_metadata_legacy(   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/operations/build/metadata_legacy.py", line 115, in generate_metadata     call_subprocess(   File "/usr/local/lib/python3.9/site-packages/pipenv/patched/notpip/_internal/utils/subprocess.py", line 242, in call_subprocess     raise InstallationError(exc_msg) pipenv.patched.notpip._internal.exceptions.InstallationError: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

By the way: I upgraded to Python 3.9.1 meanwhile.

Tag:google-ads-api, python, pipenv

4 comments.

  1. Ralf Zosel

    It took me a while to figure that out, but it seems to be a problem of pipenv under Python 3.9 (or 3.9.1) in conjunction with the google-ads Module.

    My solution:

    downgrading to Python 3.8.6 (For me as rookie it was a struggle, just in case you are interested in that: Switching Python version (3.9 → 3.8) installed by Homebrew) Upgrading pip inside pipenv

    I did this like that:

    pipenv shell pip install --upgrade pip exit

    Then it finally worked:

    % pipenv install google-ads Installing google-ads... Adding google-ads to Pipfile's [packages]... ✔ Installation Succeeded Pipfile.lock not found, creating... Locking [dev-packages] dependencies... Locking [packages] dependencies... Building requirements... Resolving dependencies... ✔ Success! Updated Pipfile.lock (aba984)! Installing dependencies from Pipfile.lock (aba984)... 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.

    Hurray!

    1. samu

      I had similar kind of "setup" and upgrading pip inside the pipenv helped me!

    2. Thomas David Baker

      ~/.virtualenvs/MYENVNAME/bin/python3.8 -m pip install --upgrade pip (as prompted at the bottom of the failure) did the trick for me :)

  2. Nimantha

    The statement "This is likely caused by a bug in google-ads. Report this to its maintainers." is raised by pipenv. It means "please do not report the issue to pipenv development team".

    It seems that you are running the command on a mac/OSX. Besides, it seems that your pipenv is installed by brew. If both of the statements are right, then it is very likely that you are mixing your system-wise pip and local-installed pipenv (by brew). This is a very frequent mistake raised by people who are not familiar with how python package management works.

    Thus, the first suggestion to find a solution, is to elaborate the python package management related information on your system (mac/OSX) as much as possible. For example, the output message of python --version, which python, which pip, and which pipenv is usually help.

    If you want to use brew to manage packages for you, make sure every step you used to install pipenv and your target package does not mix your system-wise python environment and your local(managed by brew or a python virtual environment) when trying to figure out the issue and finding a solution. For example, make sure you are starting your operation from a "clean" and just-re-spawned terminal. If you want to use brew, make sure you are controlling everything via brew. It will be a bad idea to activate a customized python virtual environment (e.g. conda environment) and then using brew.

Add a new comment.