julien-duponchelle / python-mysql-replication

Pure Python Implementation of MySQL replication protocol build on top of PyMYSQL
2.31k stars 678 forks source link

Fix missing dependency on `packaging` #590

Closed coox closed 9 months ago

coox commented 9 months ago

Description

Since the deprecation of distutils (#574), the packaging package has become a requirement, but was missing from the project’s dependencies.

We noticed this when recently attempting to install pg_chameleon, only to end up facing a ModuleNotFoundError, which we traced back to this unsatisfied dependency.

The present Pull Request fixes this by explicitly listing packaging as a dependency.

Type of Change

Checklist

Tests

sean-k1 commented 9 months ago

@coox Thanks for your reporting. Is there a problem running or a problem installing it? can you describe pg_chameleon pip install version

when I try to install latest version 2.0.19, i did not found the error.

pip install pg-chameleon==2.0.19
Collecting pg-chameleon==2.0.19
  Downloading pg_chameleon-2.0.19-py3-none-any.whl (107 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 107.1/107.1 kB 3.7 MB/s eta 0:00:00
Requirement already satisfied: PyMySQL>=0.10.0 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from pg-chameleon==2.0.19) (1.1.0)
Collecting mysql-replication>=0.31 (from pg-chameleon==2.0.19)
  Using cached mysql_replication-1.0.4-py3-none-any.whl
Collecting psycopg2-binary>=2.8.3 (from pg-chameleon==2.0.19)
  Downloading psycopg2_binary-2.9.9-cp39-cp39-macosx_10_9_x86_64.whl (2.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 11.1 MB/s eta 0:00:00
Requirement already satisfied: PyYAML>=3.13 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from pg-chameleon==2.0.19) (6.0.1)
Collecting tabulate>=0.8.1 (from pg-chameleon==2.0.19)
  Downloading tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting daemonize>=2.4.7 (from pg-chameleon==2.0.19)
  Downloading daemonize-2.5.0-py2.py3-none-any.whl (5.2 kB)
Collecting rollbar>=0.13.17 (from pg-chameleon==2.0.19)
  Downloading rollbar-1.0.0-py3-none-any.whl (101 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.2/101.2 kB 4.3 MB/s eta 0:00:00
Requirement already satisfied: requests>=0.12.1 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from rollbar>=0.13.17->pg-chameleon==2.0.19) (2.31.0)
Requirement already satisfied: charset-normalizer<4,>=2 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (3.3.0)
Requirement already satisfied: idna<4,>=2.5 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (2.0.6)
Requirement already satisfied: certifi>=2017.4.17 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (2023.7.22)
Installing collected packages: daemonize, tabulate, psycopg2-binary, mysql-replication, rollbar, pg-chameleon
Successfully installed daemonize-2.5.0 mysql-replication-1.0.4 pg-chameleon-2.0.19 psycopg2-binary-2.9.9 rollbar-1.0.0 tabulate-0.9.0
gongyisheng commented 9 months ago

@coox Thanks for your reporting. Is there a problem running or a problem installing it? can you describe pg_chameleon pip install version

when I try to install latest version 2.0.19, i did not �found the error.

pip install pg-chameleon==2.0.19
Collecting pg-chameleon==2.0.19
  Downloading pg_chameleon-2.0.19-py3-none-any.whl (107 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 107.1/107.1 kB 3.7 MB/s eta 0:00:00
Requirement already satisfied: PyMySQL>=0.10.0 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from pg-chameleon==2.0.19) (1.1.0)
Collecting mysql-replication>=0.31 (from pg-chameleon==2.0.19)
  Using cached mysql_replication-1.0.4-py3-none-any.whl
Collecting psycopg2-binary>=2.8.3 (from pg-chameleon==2.0.19)
  Downloading psycopg2_binary-2.9.9-cp39-cp39-macosx_10_9_x86_64.whl (2.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 11.1 MB/s eta 0:00:00
Requirement already satisfied: PyYAML>=3.13 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from pg-chameleon==2.0.19) (6.0.1)
Collecting tabulate>=0.8.1 (from pg-chameleon==2.0.19)
  Downloading tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting daemonize>=2.4.7 (from pg-chameleon==2.0.19)
  Downloading daemonize-2.5.0-py2.py3-none-any.whl (5.2 kB)
Collecting rollbar>=0.13.17 (from pg-chameleon==2.0.19)
  Downloading rollbar-1.0.0-py3-none-any.whl (101 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.2/101.2 kB 4.3 MB/s eta 0:00:00
Requirement already satisfied: requests>=0.12.1 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from rollbar>=0.13.17->pg-chameleon==2.0.19) (2.31.0)
Requirement already satisfied: charset-normalizer<4,>=2 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (3.3.0)
Requirement already satisfied: idna<4,>=2.5 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (2.0.6)
Requirement already satisfied: certifi>=2017.4.17 in ./opt/anaconda3/envs/python-mysql-replication/lib/python3.9/site-packages (from requests>=0.12.1->rollbar>=0.13.17->pg-chameleon==2.0.19) (2023.7.22)
Installing collected packages: daemonize, tabulate, psycopg2-binary, mysql-replication, rollbar, pg-chameleon
Successfully installed daemonize-2.5.0 mysql-replication-1.0.4 pg-chameleon-2.0.19 psycopg2-binary-2.9.9 rollbar-1.0.0 tabulate-0.9.0

I meet same issue before. If you uninstall packaging and re-install mysql-replication the problem can be reproduced. env: python 3.8.10, pip 21.1.1 packaging version can be 23.1

image
sean-k1 commented 9 months ago

@coox @gongyisheng I'll release this problem Thanks

coox commented 9 months ago

Thank you @sean-k1 and @gongyisheng!