Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Firestore Client Doesn't Work in Python 3.3 #4115

Closed
hiranya911 opened this issue Oct 3, 2017 · 6 comments
Closed

Firestore Client Doesn't Work in Python 3.3 #4115

hiranya911 opened this issue Oct 3, 2017 · 6 comments
Assignees
Labels
api: firestore Issues related to the Firestore API. packaging

Comments

@hiranya911
Copy link

hiranya911 commented Oct 3, 2017

Firestore library doesn't work on Python 3.3. Here's a sequence of steps to reproduce:

$ virtualenv sandbox
$ cd sandbox
$ source bin/activate
$ pip install google-cloud-firestore --upgrade
$ python --version
Python 3.3.0

$ python -c 'from google.cloud import firestore'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/google/home/hkj/Projects/firebase-admin-python/public/sandbox/lib/python3.3/site-packages/google/cloud/firestore.py", line 18, in <module>
    from google.cloud.firestore_v1beta1 import __version__
  File "/usr/local/google/home/hkj/Projects/firebase-admin-python/public/sandbox/lib/python3.3/site-packages/google/cloud/firestore_v1beta1/__init__.py", line 20, in <module>
    from google.cloud.firestore_v1beta1 import types
ImportError: cannot import name types

The issue seems to be grpc-related. The dependency takes an unusually long time to install.

Here's a link to a Travis build of the Firebase Admin SDK which depends on Firestore. Note how things fail only in the Python 3.3 environment.

@lukesneeringer
Copy link
Contributor

Officially, we only support Python 3.4 and up (and 2.7), in keeping with the policy if most other large open source projects. That said, we will take a look at this and fix it if it is straightforward. :-)

@dhermes dhermes added the api: firestore Issues related to the Firestore API. label Oct 3, 2017
@tseaver
Copy link
Contributor

tseaver commented Oct 4, 2017

This is most likely down to pip / setuptools bugs WRT namespace packages. @hiranya911, can you please try adding the following:

$ pip install --upgrade setuptools pip

Before installing google-cloud-firestore?

@hiranya911
Copy link
Author

@tseaver Same error as before. Nothing was updated when I tried to upgrade setuptools and pip. My versions are:

  • pip 9.0.1
  • setuptools 36.5.0

Given that this also occurs in a Travis CI environment, I doubt that it is due to outdated tools.

@dhermes
Copy link
Contributor

dhermes commented Oct 6, 2017

Given that this also occurs in a Travis CI environment, I doubt that it is due to outdated tools.

Travis CI is not notorious for having up-to-date environments, e.g. their latest Ubuntu image is the previous LTS from April 2014.

@lukesneeringer
Copy link
Contributor

Hi @hiranya911,
I looked into this, and the ImportError is actually coming from grpc, which is issuing import enum.

enum was added to the standard library in Python 3.4, but there is a backport on PyPI for previous versions (pip install enum34). If you install enum34 from pip when using Python 3.3, things might work.

What I mean by "things might work" -- doing so will get you past that particular ImportError. I do not guarantee everything will work past that, since we do not officially support or test on Python 3.3. (Your chances are decent that everything will work fine, though.)

@lukesneeringer
Copy link
Contributor

@hiranya911 I also filed grpc/grpc#12976 that will fix this on their side.

Again, no promises of Python 3.3 support, but this seems like sufficiently low hanging fruit.

parthea pushed a commit that referenced this issue Jun 4, 2023
* Add samples for Data Catalog lookup_entry [(#2148)](GoogleCloudPlatform/python-docs-samples#2148)

* Add samples for Data Catalog lookup_entry

* Add tests for Data Catalog lookup_entry

* Add samples for lookup_entry by SQL Resource

* Add README.rst

* Improve command line interface

* Removed the "lookup-" prefix from commands
* Handle the --sql-resource optional argument by subparsers

* Refer to GCP public assets in tests

* Add region tags to support Data Catalog docs [(#2169)](GoogleCloudPlatform/python-docs-samples#2169)

* Adds updates including compute [(#2436)](GoogleCloudPlatform/python-docs-samples#2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Auto-update dependencies. [(#2005)](GoogleCloudPlatform/python-docs-samples#2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <[email protected]>
Co-authored-by: Doug Mahugh <[email protected]>

* chore(deps): update dependency google-cloud-datacatalog to v0.6.0 [(#3069)](GoogleCloudPlatform/python-docs-samples#3069)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [google-cloud-datacatalog](https://togithub.com/googleapis/python-datacatalog) | minor | `==0.5.0` -> `==0.6.0` |

---

### Release Notes

<details>
<summary>googleapis/python-datacatalog</summary>

### [`v0.6.0`](https://togithub.com/googleapis/python-datacatalog/blob/master/CHANGELOG.md#&#8203;060httpswwwgithubcomgoogleapispython-datacatalogcomparev050v060-2020-02-24)

[Compare Source](https://togithub.com/googleapis/python-datacatalog/compare/v0.5.0...v0.6.0)

##### Features

-   **datacatalog:** add sample for create a fileset entry quickstart ([#&#8203;9977](https://www.github.com/googleapis/python-datacatalog/issues/9977)) ([16eaf4b](https://www.github.com/googleapis/python-datacatalog/commit/16eaf4b16cdc0ce7361afb1d8dac666cea2a9db0))
-   **datacatalog:** undeprecate resource name helper methods, bump copyright year to 2020, tweak docstring formatting (via synth) ([#&#8203;10228](https://www.github.com/googleapis/python-datacatalog/issues/10228)) ([84e5e7c](https://www.github.com/googleapis/python-datacatalog/commit/84e5e7c340fa189ce4cffca4fdee82cc7ded9f70))
-   add `list_entry_groups`, `list_entries`, `update_entry_group` methods to v1beta1 (via synth) ([#&#8203;6](https://www.github.com/googleapis/python-datacatalog/issues/6)) ([b51902e](https://www.github.com/googleapis/python-datacatalog/commit/b51902e26d590f52c9412756a178265850b7d516))

##### Bug Fixes

-   **datacatalog:** deprecate resource name helper methods (via synth) ([#&#8203;9831](https://www.github.com/googleapis/python-datacatalog/issues/9831)) ([22db3f0](https://www.github.com/googleapis/python-datacatalog/commit/22db3f0683b8aca544cd96c0063dcc8157ad7335))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/python-docs-samples).

* Simplify noxfile setup. [(#2806)](GoogleCloudPlatform/python-docs-samples#2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <[email protected]>

* Update dependency google-cloud-datacatalog to v0.7.0 [(#3320)](GoogleCloudPlatform/python-docs-samples#3320)

Co-authored-by: Bu Sun Kim <[email protected]>

* Update Data Catalog samples to V1 [(#3382)](GoogleCloudPlatform/python-docs-samples#3382)

Co-authored-by: Takashi Matsuo <[email protected]>

* chore(deps): update dependency google-cloud-datacatalog to v0.8.0 [(#3850)](GoogleCloudPlatform/python-docs-samples#3850)

* Update dependency google-cloud-datacatalog to v1 [(#4115)](GoogleCloudPlatform/python-docs-samples#4115)

* chore(deps): update dependency pytest to v5.4.3 [(#4279)](GoogleCloudPlatform/python-docs-samples#4279)

* chore(deps): update dependency pytest to v5.4.3

* specify pytest for python 2 in appengine

Co-authored-by: Leah Cole <[email protected]>

* Update dependency pytest to v6 [(#4390)](GoogleCloudPlatform/python-docs-samples#4390)

* chore: update templates

* chore: update templates

* feat: Migrate to use Microgenerator

* feat: Migrate to use Microgenerator

* feat: Migrate to use Microgenerator

* Migrate API to microgenerator

* Migrate API to microgenerator

* Samples tests

* fix samples tests

* fix lint errors and test coverage metrics

* docs update

* fix docs

* fix docs

* fix docs

* remove .python-version file

Co-authored-by: Ricardo Mendes <[email protected]>
Co-authored-by: Gus Class <[email protected]>
Co-authored-by: DPEBot <[email protected]>
Co-authored-by: Kurtis Van Gent <[email protected]>
Co-authored-by: Doug Mahugh <[email protected]>
Co-authored-by: WhiteSource Renovate <[email protected]>
Co-authored-by: Bu Sun Kim <[email protected]>
Co-authored-by: Marcelo Costa <[email protected]>
Co-authored-by: Takashi Matsuo <[email protected]>
Co-authored-by: Leah Cole <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: firestore Issues related to the Firestore API. packaging
Projects
None yet
Development

No branches or pull requests

4 participants