Hi Dave, On Fri, Feb 9, 2018 at 8:40 PM, Dave Page <dp...@pgadmin.org> wrote:
> Hi, > > Doesn't this need to include 2.7 in the test that'll install the newer > version of psycopg2? e.g. > > psycopg2>=2.7.3.2; python_version >= '2.7' > Sorry for the typo. > psycopg2==2.7.3.2; python_version < '2.7' > > Also, I think the change as written breaks the wheel generation (see the > comment at the top of requirements.txt). Changes are required > inpkg/pip/setup_pip.py aren't they? > > If we use the latest version of pip then we can also use psycopg2 binary package which will save us from compiling the psycopg2 source on client. http://initd.org/psycopg/docs/install.html#binary-install-from-pypi I have attached both patches, Please review & check which one suites to our need., I've tested both patches and its working fine. > Thanks. > > On Fri, Feb 9, 2018 at 10:30 AM, Murtuza Zabuawala < > murtuza.zabuaw...@enterprisedb.com> wrote: > >> Hi Dave, >> >> Newer version of psycopg2 have drop the support for Python2.6. >> >> -- >> Regards, >> Murtuza Zabuawala >> EnterpriseDB: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> >> >> On Fri, Feb 9, 2018 at 3:47 PM, pgAdmin 4 Jenkins <jenk...@pgadmin.org> >> wrote: >> >>> See <https://jenkins.pgadmin.org/job/pgadmin4-master-python26/60 >>> 2/display/redirect?page=changes> >>> >>> Changes: >>> >>> [Dave Page] Fix quoting of function names in RE-SQL. Fixes #3060 >>> >>> ------------------------------------------ >>> Started by an SCM change >>> [EnvInject] - Loading node environment variables. >>> Building in workspace <https://jenkins.pgadmin.org/j >>> ob/pgadmin4-master-python26/ws/> >>> > git rev-parse --is-inside-work-tree # timeout=10 >>> Fetching changes from the remote Git repository >>> > git config remote.origin.url git://git.postgresql.org/git/p >>> gadmin4.git # timeout=10 >>> Cleaning workspace >>> > git rev-parse --verify HEAD # timeout=10 >>> Resetting working tree >>> > git reset --hard # timeout=10 >>> > git clean -fdx # timeout=10 >>> Fetching upstream changes from git://git.postgresql.org/git/pgadmin4.git >>> > git --version # timeout=10 >>> > git fetch --tags --progress git://git.postgresql.org/git/pgadmin4.git >>> +refs/heads/*:refs/remotes/origin/* >>> > git rev-parse origin/master^{commit} # timeout=10 >>> Checking out Revision db92907fe9b98e1bcc5ec993a2c16ca0438ac283 >>> (origin/master) >>> Commit message: "Fix quoting of function names in RE-SQL. Fixes #3060" >>> > git config core.sparsecheckout # timeout=10 >>> > git checkout -f db92907fe9b98e1bcc5ec993a2c16ca0438ac283 >>> > git rev-list 2706d9cd8e6f98cf543e4e86afe881b8f4b571d3 # timeout=10 >>> [EnvInject] - Executing scripts and injecting environment variables >>> after the SCM step. >>> [EnvInject] - Injecting as environment variables the properties content >>> PYTHON_VERSION=2.6 >>> >>> [EnvInject] - Variables injected successfully. >>> [pgadmin4-master-python26] $ /bin/sh -xe /tmp/jenkins442446243320062238 >>> 4.sh >>> + <https://jenkins.pgadmin.org/job/pgadmin4-master-python26/ws >>> /ci/ci_runner.sh> >>> EXECUTING: Create pgAdmin config >>> >>> EXECUTING: Python tests >>> >>> Creating Python 2.6 virtual environment... >>> >>> New python executable in <https://jenkins.pgadmin.org/j >>> ob/pgadmin4-master-python26/ws/pgadmin-venv/bin/python> >>> Installing setuptools, pip...done. >>> Running virtualenv with interpreter /usr/local/python-2.6/bin/python >>> DEPRECATION: Python 2.6 is no longer supported by the Python core team, >>> please upgrade your Python. A future version of pip will drop support for >>> Python 2.6 >>> Collecting wheel==0.29.0 >>> <https://jenkins.pgadmin.org/job/pgadmin4-master-python26/ws >>> /pgadmin-venv/lib/python2.6/site-packages/pip/_vendor/reques >>> ts/packages/urllib3/util/ssl_.py>:318: SNIMissingWarning: An HTTPS >>> request has been made, but the SNI (Subject Name Indication) extension to >>> TLS is not available on this platform. This may cause the server to present >>> an incorrect TLS certificate, which can cause validation failures. You can >>> upgrade to a newer version of Python to solve this. For more information, >>> see https://urllib3.readthedocs.io/en/latest/security.html#snimi >>> ssingwarning. >>> SNIMissingWarning >>> <https://jenkins.pgadmin.org/job/pgadmin4-master-python26/ws >>> /pgadmin-venv/lib/python2.6/site-packages/pip/_vendor/reques >>> ts/packages/urllib3/util/ssl_.py>:122: InsecurePlatformWarning: A true >>> SSLContext object is not available. This prevents urllib3 from configuring >>> SSL appropriately and may cause certain SSL connections to fail. You can >>> upgrade to a newer version of Python to solve this. For more information, >>> see https://urllib3.readthedocs.io/en/latest/security.html#insec >>> ureplatformwarning. >>> InsecurePlatformWarning >>> Using cached wheel-0.29.0-py2.py3-none-any.whl >>> Collecting argparse; python_version == "2.6" (from wheel==0.29.0) >>> Using cached argparse-1.4.0-py2.py3-none-any.whl >>> Installing collected packages: argparse, wheel >>> Successfully installed argparse-1.4.0 wheel-0.29.0 >>> DEPRECATION: Python 2.6 is no longer supported by the Python core team, >>> please upgrade your Python. A future version of pip will drop support for >>> Python 2.6 >>> Ignoring Flask-HTMLmin: markers 'python_version >= "2.7"' don't match >>> your environment >>> Collecting Babel==2.3.4 (from -r requirements.txt (line 4)) >>> <https://jenkins.pgadmin.org/job/pgadmin4-master-python26/ws >>> /pgadmin-venv/lib/python2.6/site-packages/pip/_vendor/reques >>> ts/packages/urllib3/util/ssl_.py>:318: SNIMissingWarning: An HTTPS >>> request has been made, but the SNI (Subject Name Indication) extension to >>> TLS is not available on this platform. This may cause the server to present >>> an incorrect TLS certificate, which can cause validation failures. You can >>> upgrade to a newer version of Python to solve this. For more information, >>> see https://urllib3.readthedocs.io/en/latest/security.html#snimi >>> ssingwarning. >>> SNIMissingWarning >>> <https://jenkins.pgadmin.org/job/pgadmin4-master-python26/ws >>> /pgadmin-venv/lib/python2.6/site-packages/pip/_vendor/reques >>> ts/packages/urllib3/util/ssl_.py>:122: InsecurePlatformWarning: A true >>> SSLContext object is not available. This prevents urllib3 from configuring >>> SSL appropriately and may cause certain SSL connections to fail. You can >>> upgrade to a newer version of Python to solve this. For more information, >>> see https://urllib3.readthedocs.io/en/latest/security.html#insec >>> ureplatformwarning. >>> InsecurePlatformWarning >>> Using cached Babel-2.3.4-py2.py3-none-any.whl >>> Collecting beautifulsoup4==4.4.1 (from -r requirements.txt (line 5)) >>> Using cached beautifulsoup4-4.4.1-py2-none-any.whl >>> Collecting blinker==1.3 (from -r requirements.txt (line 6)) >>> Collecting click==6.6 (from -r requirements.txt (line 7)) >>> Using cached click-6.6-py2.py3-none-any.whl >>> Collecting extras==0.0.3 (from -r requirements.txt (line 8)) >>> Collecting fixtures==2.0.0 (from -r requirements.txt (line 9)) >>> Using cached fixtures-2.0.0-py2.py3-none-any.whl >>> Collecting Flask==0.11.1 (from -r requirements.txt (line 10)) >>> Using cached Flask-0.11.1-py2.py3-none-any.whl >>> Collecting Flask-Babel==0.11.1 (from -r requirements.txt (line 11)) >>> Collecting Flask-Gravatar==0.4.2 (from -r requirements.txt (line 12)) >>> Using cached Flask_Gravatar-0.4.2-py2.py3-none-any.whl >>> Collecting Flask-Login==0.3.2 (from -r requirements.txt (line 14)) >>> Collecting Flask-Mail==0.9.1 (from -r requirements.txt (line 15)) >>> Collecting Flask-Migrate==2.0.3 (from -r requirements.txt (line 16)) >>> Collecting Flask-Principal==0.4.0 (from -r requirements.txt (line 17)) >>> Collecting Flask-Security==1.7.5 (from -r requirements.txt (line 18)) >>> Collecting Flask-SQLAlchemy==2.1 (from -r requirements.txt (line 19)) >>> Collecting Flask-WTF==0.12 (from -r requirements.txt (line 20)) >>> Using cached Flask_WTF-0.12-py2-none-any.whl >>> Collecting html5lib==1.0b3 (from -r requirements.txt (line 21)) >>> Collecting importlib==1.0.3 (from -r requirements.txt (line 22)) >>> Collecting itsdangerous==0.24 (from -r requirements.txt (line 23)) >>> Collecting Jinja2==2.7.3 (from -r requirements.txt (line 24)) >>> Collecting linecache2==1.0.0 (from -r requirements.txt (line 25)) >>> Using cached linecache2-1.0.0-py2.py3-none-any.whl >>> Collecting MarkupSafe==0.23 (from -r requirements.txt (line 26)) >>> Collecting ordereddict (from -r requirements.txt (line 27)) >>> Collecting passlib==1.6.2 (from -r requirements.txt (line 28)) >>> Collecting pbr==1.9.1 (from -r requirements.txt (line 29)) >>> Using cached pbr-1.9.1-py2.py3-none-any.whl >>> Collecting psycopg2>=2.7.3.2 (from -r requirements.txt (line 30)) >>> Downloading psycopg2-2.7.4.tar.gz (425kB) >>> Complete output from command python setup.py egg_info: >>> running egg_info >>> creating pip-egg-info/psycopg2.egg-info >>> writing pip-egg-info/psycopg2.egg-info/PKG-INFO >>> writing top-level names to pip-egg-info/psycopg2.egg-info >>> /top_level.txt >>> writing dependency_links to pip-egg-info/psycopg2.egg-info >>> /dependency_links.txt >>> writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt' >>> >>> Error: pg_config executable not found. >>> >>> pg_config is required to build psycopg2 from source. Please add the >>> directory >>> containing pg_config to the $PATH or specify the full executable >>> path with the >>> option: >>> >>> python setup.py build_ext --pg-config /path/to/pg_config build >>> ... >>> >>> or with the pg_config option in 'setup.cfg'. >>> >>> If you prefer to avoid building psycopg2 from source, please install >>> the PyPI >>> 'psycopg2-binary' package instead. >>> >>> For further information please check the 'doc/src/install.rst' file >>> (also at >>> <http://initd.org/psycopg/docs/install.html>). >>> >>> >>> ---------------------------------------- >>> Command "python setup.py egg_info" failed with error code 1 in >>> /tmp/pip-build-Cj37xM/psycopg2/ >>> ERROR: Failed to install the application requirements. >>> ERROR: Error detected when running the Python tests. >>> Build step 'Execute shell' marked build as failure >>> >>> >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >
diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py index a330435..3f3644b 100644 --- a/pkg/pip/setup_pip.py +++ b/pkg/pip/setup_pip.py @@ -86,9 +86,11 @@ setup( extras_require={ # ... - ":python_version<'2.7'": ["ordereddict", "Flask-Script"], + ":python_version<'2.7'": [ + "ordereddict", "Flask-Script", "psycopg2==2.7.3.2" + ], ":python_version<='2.7'": ["backports.csv", "importlib"], - ":python_version>='2.7'": ["Flask-HTMLmin"] + ":python_version>='2.7'": ["Flask-HTMLmin", "psycopg2-binary"] }, # Specify data files to be included. For Python 2.6 include them in MANIFEST.in diff --git a/requirements.txt b/requirements.txt index 2e486f3..35dc3e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -27,7 +27,8 @@ MarkupSafe==0.23 ordereddict; python_version < '2.7' passlib==1.6.2 pbr==1.9.1 -psycopg2>=2.7.3.2 +psycopg2-binary; python_version >= '2.7' +psycopg2==2.7.3.2; python_version < '2.7' pycrypto==2.6.1 pyrsistent==0.11.13 python-dateutil==2.5.0
diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py index a330435..25a5ab0 100644 --- a/pkg/pip/setup_pip.py +++ b/pkg/pip/setup_pip.py @@ -86,9 +86,11 @@ setup( extras_require={ # ... - ":python_version<'2.7'": ["ordereddict", "Flask-Script"], + ":python_version<'2.7'": [ + "ordereddict", "Flask-Script", "psycopg2==2.7.3.2" + ], ":python_version<='2.7'": ["backports.csv", "importlib"], - ":python_version>='2.7'": ["Flask-HTMLmin"] + ":python_version>='2.7'": ["Flask-HTMLmin", "psycopg2>=2.7.3.2"] }, # Specify data files to be included. For Python 2.6 include them in MANIFEST.in diff --git a/requirements.txt b/requirements.txt index 2e486f3..6f17b1e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -27,7 +27,8 @@ MarkupSafe==0.23 ordereddict; python_version < '2.7' passlib==1.6.2 pbr==1.9.1 -psycopg2>=2.7.3.2 +psycopg2>=2.7.3.2; python_version >= '2.7' +psycopg2==2.7.3.2; python_version < '2.7' pycrypto==2.6.1 pyrsistent==0.11.13 python-dateutil==2.5.0