Pipenv: рдкрд┐рдкреЗрдирд╡ psycopg2 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЕрдХреНрддреВре░ 2019  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pipenv

рдореБрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг

pipenv install psycopg2 рд╡рд┐рдлрд▓ рд░рд╣рд╛, рднрд▓реЗ рд╣реА Pipfile рдФрд░ Pipfile.lock рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдФрд░ рд╣реИрд╢ рд╢рд╛рдорд┐рд▓ рдереЗред

рд╕рд╛рде рд╣реА рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ pip install psycopg2 also failed : https://gist.github.com/ye/bf1198cc15d9a6a177bae8bc0fc0aff9#file -pip-install-psycopg2-log

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж, рдкрд┐рдкреЗрдирд╡ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рдкрд╛рдЗрдк рдХреЛ рдмреЛрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

$ pip -V                                                                                                                                                                                                                                                                                                                                                                                  
dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /Users/ye/.venvs/server-D2-ixepO/bin/python3.7
  Reason: image not found
[1]    5466 abort      pip -V

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо

https://gist.github.com/ye/bf1198cc15d9a6a177bae8bc0fc0aff9

рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

pipenv install psycopg2


$ рдкрд┐рдкреЗрдирд╡ --рд╕рдорд░реНрдерди

рдкрд┐рдкреЗрдирд╡ рд╕рдВрд╕реНрдХрд░рдг: '2018.11.26'

рдкрд┐рдкреЗрдирд╡ рд╕реНрдерд╛рди: '/usr/local/lib/python3.7/site-packages/pipenv'

рдкрд╛рдпрдерди рд╕реНрдерд╛рди: '/usr/local/opt/python/bin/python3.7'

рдкрд╛рдпрдерди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд┐рд▓рд╛:

  • 3.7.4 : /Users/ye/.venvs/server-D2-ixepO/bin/python3
  • 3.7.4 : /usr/local/bin/python3
  • 3.7.4 : /usr/local/bin/python3.7m
  • 2.7.10 : /usr/bin/python
  • 2.7.10 : /usr/bin/pythonw
  • 2.7.10 : /usr/bin/python2.7

рдкреАрдИрдкреА 508 рд╕реВрдЪрдирд╛:

{'implementation_name': 'cpython',
 'implementation_version': '3.7.4',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '18.7.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT '
                     '2019; root:xnu-4903.271.2~2/RELEASE_X86_64',
 'python_full_version': '3.7.4',
 'python_version': '3.7',
 'sys_platform': 'darwin'}

рд╕рд┐рд╕реНрдЯрдо рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░:

  • TERM_SESSION_ID
  • SSH_AUTH_SOCK
  • LC_TERMINAL_VERSION
  • Apple_PubSub_Socket_Render
  • COLORFGBG
  • ITERM_PROFILE
  • SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS
  • XPC_FLAGS
  • LANG
  • PWD
  • SHELL
  • SECURITYSESSIONID
  • TERM_PROGRAM_VERSION
  • TERM_PROGRAM
  • PATH
  • LC_TERMINAL
  • COLORTERM
  • COMMAND_MODE
  • TERM
  • HOME
  • TMPDIR
  • USER
  • XPC_SERVICE_NAME
  • LOGNAME
  • __CF_USER_TEXT_ENCODING
  • ITERM_SESSION_ID
  • SHLVL
  • OLDPWD
  • ZSH
  • GOPATH
  • PAGER
  • LESS
  • LSCOLORS
  • VIRTUAL_ENV_DISABLE_PROMPT
  • WORKON_HOME
  • PROJECT_HOME
  • VIRTUALENVWRAPPER_PYTHON
  • VIRTUALENVWRAPPER_VIRTUALENV
  • VIRTUALENVWRAPPER_PROJECT_FILENAME
  • VIRTUALENVWRAPPER_WORKON_CD
  • VIRTUALENVWRAPPER_SCRIPT
  • VIRTUALENVWRAPPER_HOOK_DIR
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONDONTWRITEBYTECODE
  • PIP_PYTHON_PATH
  • PIPENV_ACTIVE
  • VIRTUAL_ENV
  • _
  • PIP_SHIMS_BASE_MODULE
  • PYTHONFINDER_IGNORE_UNSUPPORTED

рдкрд┐рдкреЗрдирд╡-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░:

  • PIPENV_ACTIVE : 1

рдбреАрдмрдЧ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░:

  • PATH : /Users/ye/.venvs/server-D2-ixepO/bin:/Users/ye/.cargo/bin:/usr/local/sbin:/Users/ye/Library/Python/3.7/bin:/Users/ye/bin:/Users/ye/.cargo/bin:/usr/local/sbin:/usr/local/opt/gettext/bin:/Users/ye/Library/Python/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Users/ye/.cargo/bin:/Users/ye/.poetry/bin
  • SHELL : /bin/zsh
  • LANG : en_US.UTF-8
  • PWD : /Users/ye/website/server
  • VIRTUAL_ENV : /Users/ye/.venvs/server-D2-ixepO

Pipfile ('/ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдпреЗ/рд╡реЗрдмрд╕рд╛рдЗрдЯ/рд╕рд░реНрд╡рд░/рдкрд┐рдкрдлрд╛рдЗрд▓') рдХреА рд╕рд╛рдордЧреНрд░реА:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
ipython = "*"
flask = "*"
sqlalchemy = "*"
flask-sqlalchemy = "*"
flask-admin = "*"
flask-login = "*"

[requires]
python_version = "3.7"

Pipfile.lock ('/Users/ye/website/server/Pipfile.lock') рдХреА рд╕рд╛рдордЧреНрд░реА:

{
    "_meta": {
        "hash": {
            "sha256": "39be307e901dd24694fdcd3df287b62eb1265d908ac3d91d854703c3e8acd897"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.7"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "appnope": {
            "hashes": [
                "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0",
                "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71"
            ],
            "markers": "sys_platform == 'darwin'",
            "version": "==0.1.0"
        },
        "backcall": {
            "hashes": [
                "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4",
                "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2"
            ],
            "version": "==0.1.0"
        },
        "click": {
            "hashes": [
                "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13",
                "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
            ],
            "version": "==7.0"
        },
        "decorator": {
            "hashes": [
                "sha256:86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de",
                "sha256:f069f3a01830ca754ba5258fde2278454a0b5b79e0d7f5c13b3b97e57d4acff6"
            ],
            "version": "==4.4.0"
        },
        "flask": {
            "hashes": [
                "sha256:13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52",
                "sha256:45eb5a6fd193d6cf7e0cf5d8a5b31f83d5faae0293695626f539a823e93b13f6"
            ],
            "index": "pypi",
            "version": "==1.1.1"
        },
        "flask-admin": {
            "hashes": [
                "sha256:ca0be6ec11a6913b73f656c65c444ae5be416c57c75638dd3199376ce6bc7422"
            ],
            "index": "pypi",
            "version": "==1.5.3"
        },
        "flask-login": {
            "hashes": [
                "sha256:c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec"
            ],
            "index": "pypi",
            "version": "==0.4.1"
        },
        "flask-sqlalchemy": {
            "hashes": [
                "sha256:0078d8663330dc05a74bc72b3b6ddc441b9a744e2f56fe60af1a5bfc81334327",
                "sha256:6974785d913666587949f7c2946f7001e4fa2cb2d19f4e69ead02e4b8f50b33d"
            ],
            "index": "pypi",
            "version": "==2.4.1"
        },
        "ipython": {
            "hashes": [
                "sha256:c4ab005921641e40a68e405e286e7a1fcc464497e14d81b6914b4fd95e5dee9b",
                "sha256:dd76831f065f17bddd7eaa5c781f5ea32de5ef217592cf019e34043b56895aa1"
            ],
            "index": "pypi",
            "version": "==7.8.0"
        },
        "ipython-genutils": {
            "hashes": [
                "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
                "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
            ],
            "version": "==0.2.0"
        },
        "itsdangerous": {
            "hashes": [
                "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
                "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
            ],
            "version": "==1.1.0"
        },
        "jedi": {
            "hashes": [
                "sha256:786b6c3d80e2f06fd77162a07fed81b8baa22dde5d62896a790a331d6ac21a27",
                "sha256:ba859c74fa3c966a22f2aeebe1b74ee27e2a462f56d3f5f7ca4a59af61bfe42e"
            ],
            "version": "==0.15.1"
        },
        "jinja2": {
            "hashes": [
                "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f",
                "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de"
            ],
            "version": "==2.10.3"
        },
        "markupsafe": {
            "hashes": [
                "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
                "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
                "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
                "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
                "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
                "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
                "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
                "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
                "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
                "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
                "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
                "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
                "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
                "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
                "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
                "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
                "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
                "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
                "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
                "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
                "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
                "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
                "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
                "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
                "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
                "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
                "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
                "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"
            ],
            "version": "==1.1.1"
        },
        "parso": {
            "hashes": [
                "sha256:63854233e1fadb5da97f2744b6b24346d2750b85965e7e399bec1620232797dc",
                "sha256:666b0ee4a7a1220f65d367617f2cd3ffddff3e205f3f16a0284df30e774c2a9c"
            ],
            "version": "==0.5.1"
        },
        "pexpect": {
            "hashes": [
                "sha256:2094eefdfcf37a1fdbfb9aa090862c1a4878e5c7e0e7e7088bdb511c558e5cd1",
                "sha256:9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb"
            ],
            "markers": "sys_platform != 'win32'",
            "version": "==4.7.0"
        },
        "pickleshare": {
            "hashes": [
                "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca",
                "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"
            ],
            "version": "==0.7.5"
        },
        "prompt-toolkit": {
            "hashes": [
                "sha256:46642344ce457641f28fc9d1c9ca939b63dadf8df128b86f1b9860e59c73a5e4",
                "sha256:e7f8af9e3d70f514373bf41aa51bc33af12a6db3f71461ea47fea985defb2c31",
                "sha256:f15af68f66e664eaa559d4ac8a928111eebd5feda0c11738b5998045224829db"
            ],
            "version": "==2.0.10"
        },
        "ptyprocess": {
            "hashes": [
                "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
                "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
            ],
            "version": "==0.6.0"
        },
        "pygments": {
            "hashes": [
                "sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127",
                "sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297"
            ],
            "version": "==2.4.2"
        },
        "six": {
            "hashes": [
                "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c",
                "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
            ],
            "version": "==1.12.0"
        },
        "sqlalchemy": {
            "hashes": [
                "sha256:0f0768b5db594517e1f5e1572c73d14cf295140756431270d89496dc13d5e46c"
            ],
            "index": "pypi",
            "version": "==1.3.10"
        },
        "traitlets": {
            "hashes": [
                "sha256:70b4c6a1d9019d7b4f6846832288f86998aa3b9207c6821f3578a6a6a467fe44",
                "sha256:d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7"
            ],
            "version": "==4.3.3"
        },
        "wcwidth": {
            "hashes": [
                "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e",
                "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c"
            ],
            "version": "==0.1.7"
        },
        "werkzeug": {
            "hashes": [
                "sha256:7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7",
                "sha256:e5f4a1f98b52b18a93da705a7458e55afb26f32bff83ff5d19189f92462d65c4"
            ],
            "version": "==0.16.0"
        },
        "wtforms": {
            "hashes": [
                "sha256:0cdbac3e7f6878086c334aa25dc5a33869a3954e9d1e015130d65a69309b3b61",
                "sha256:e3ee092c827582c50877cdbd49e9ce6d2c5c1f6561f849b3b068c1b8029626f1"
            ],
            "version": "==2.2.1"
        }
    },
    "develop": {}
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдЫ рдЭрдВрдбреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛!

export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкрд┐рдкреЗрдирд╡ рд╕реЗ рдЬреБрдбрд╝рд╛ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ

рд╕рдорд╛рдзрд╛рди:

  1. рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреЛ pipenv --rm рджреНрд╡рд╛рд░рд╛ рд╢реБрджреНрдз рдХрд░реЗрдВ
  2. рдмрд╛рдЗрдирд░реА рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: pipenv install psycopg2-binary

рдореИрдВ macOS Mojave 10.14.4 рдкрд░ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

pipenv install psycopg2 рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐, pipenv run pip install psycopg2 рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ psycopg2 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ

^ @robertsutherland рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ pipenv run pip install psycopg2-binary рдЪрд▓рд╛рдирд╛ рдкрдбрд╝рд╛

@HashRocketSyntax
рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╣рдо рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдбрд┐рдкреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрджрд┐ pipenv run pip install psycopg2-binary , рддреЛ рдкрд┐рдкрдлрд╛рдЗрд▓/рдкрд┐рдкрдлрд╛рдЗрд▓.рд▓реЙрдХ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред

рдЗрдирд╕реАрдб pipenv install psycopg2-binary рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ (рд╕рднреА рдХреЛ) рдкрд┐рдкреЗрдирд╡ (рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдиреЛ-рд░рд┐рд▓реАрдЬрд╝рд┐рдВрдЧ рдЬреЛрдЦрд┐рдо) рдФрд░ рдкрд┐рдкреЗрдирд╡ рдХреЗ рд▓рд╛рднреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░, рдЕрдиреНрдп рдЯреВрд▓ (рдкрд╛рдЗрдк-рдЯреВрд▓реНрд╕/рдХрд╡рд┐рддрд╛/рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХрдЪреНрдЪреЗ) рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВред рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ.txt) рдпрд╛ рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд░рд╣реЗрдВ

@menghuu рдЬреЛ рд╕рднреА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдФрд░ рдкрд╛рде + рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдпрд╛ run pip ред

рдкрд┐рдкреЗрдирд╡ рд╕реЗ рдЬреБрдбрд╝рд╛ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ

рд╕рдорд╛рдзрд╛рди:

  1. рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреЛ pipenv --rm рджреНрд╡рд╛рд░рд╛ рд╢реБрджреНрдз рдХрд░реЗрдВ
  2. рдмрд╛рдЗрдирд░реА рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: pipenv install psycopg2-binary

@frostming рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ

рд╡реИрд╕реЗ, pipenv install psycopg2-binary рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рд░рдЧрд░ рдирд╣реАрдВ рд░рд╣рд╛ред

$ pipenv --rm
Removing virtualenv (/Users/ye/.venvs/server-D2-ixepO)тАж
$ pipenv install psycopg2-binary
Creating a virtualenv for this projectтАж
Pipfile: /Users/ye/dev/website-react/server/Pipfile
Using /usr/local/bin/python3 (3.7.4) to create virtualenvтАж
таз Creating virtual environment...Already using interpreter /usr/local/opt/python/bin/python3.7
Using base prefix '/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/ye/.venvs/server-D2-ixepO/bin/python3.7
Also creating executable in /Users/ye/.venvs/server-D2-ixepO/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /usr/local/bin/python3

тЬФ Successfully created virtual environment!
Virtualenv location: /Users/ye/.venvs/server-D2-ixepO
Installing psycopg2-binaryтАж
Adding psycopg2-binary to Pipfile's [packages]тАж
тЬФ Installation Succeeded
Pipfile.lock (49ca5b) out of date, updating to (2a2c3b)тАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
тЬШ Locking Failed!
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
[pipenv.exceptions.ResolutionFailure]:       req_dir=requirements_dir
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
[pipenv.exceptions.ResolutionFailure]:       req_dir=req_dir,
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
[pipenv.exceptions.ResolutionFailure]:       resolved_tree = resolver.resolve()
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 395, in resolve
[pipenv.exceptions.ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]:       pipenv.exceptions.ResolutionFailure: ERROR: ERROR: Could not find a version that matches google-cloud-python
[pipenv.exceptions.ResolutionFailure]:       No versions found
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
 Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ERROR: Could not find a version that matches google-cloud-python
No versions found
Was https://pypi.org/simple reachable?
[pipenv.exceptions.ResolutionFailure]:       req_dir=requirements_dir
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
[pipenv.exceptions.ResolutionFailure]:       req_dir=req_dir,
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
[pipenv.exceptions.ResolutionFailure]:       resolved_tree = resolver.resolve()
[pipenv.exceptions.ResolutionFailure]:   File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 395, in resolve
[pipenv.exceptions.ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]:       pipenv.exceptions.ResolutionFailure: ERROR: ERROR: Could not find a version that matches google-cloud-python
[pipenv.exceptions.ResolutionFailure]:       No versions found
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
 Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ERROR: Could not find a version that matches google-cloud-python
No versions found
Was https://pypi.org/simple reachable?

рдореИрдВрдиреЗ рдкрд┐рдкреЗрдирд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рддреЗрдВ рд╕реБрдиреАрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд▓реЗрдХрд┐рди рдКрдкрд░ рджрд┐рдП рдЧрдП рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд psycopg2 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡реЗрдирд╡ рдФрд░ рдкрд┐рдк рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд┐рдкреЗрдирд╡ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

@ye рджреЗрд░ рд╕реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ

рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреЛ рд╢реБрджреНрдз рдХрд░рдирд╛ рд╡реЗрдирд╡ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЯреВрдЯрдиреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реИред

рд╡реИрд╕реЗ, pipenv install psycopg2-binary рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рд░рдЧрд░ рдирд╣реАрдВ рд░рд╣рд╛ред

рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ google-cloud-python , PyPI рдкрд░ рдРрд╕рд╛ рдХреЛрдИ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди google-cloud рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореИрдВ pipenv install psycopg2 --sequential рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ( --sequential рд╕рд╛рде update рдФрд░ sync рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред

рдкрд┐рдкреЗрдирд╡ рд╕реЗ рдЬреБрдбрд╝рд╛ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ

рд╕рдорд╛рдзрд╛рди:

  1. рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреЛ pipenv --rm рджреНрд╡рд╛рд░рд╛ рд╢реБрджреНрдз рдХрд░реЗрдВ
  2. рдмрд╛рдЗрдирд░реА рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: pipenv install psycopg2-binary

psycopg рд╕реНрдерд╛рдкрдирд╛ рдкреГрд╖реНрда рд╕реЗ:

рдиреЛрдЯ psycopg2-рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдб рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдкрд╛рдпрдерди рдФрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк psycopg2 рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рдЕрдиреБрд░рдХреНрд╖рдХ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ 'psycopg2-рдмрд╛рдЗрдирд░реА' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрддреНрдкрд╛рджрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред

Psycopg рджреЗрд╡реЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдиреА рдмрд╛рдд рдХрд╣ рджреА рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ:
https://github.com/psycopg/psycopg2/issues/883

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рд▓реНрдб рдЪрд░рдг рдЪрд▓рд╛рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛?

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдЫ рдЭрдВрдбреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛!

export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдЫ рдЭрдВрдбреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛!

`рдирд┐рд░реНрдпрд╛рдд рдПрд▓рдбреАрдПрдлрдПрд▓рдЬреАрдПрд╕="-рдПрд▓/рдпреВрдПрд╕рдЖрд░/рд▓реЛрдХрд▓/рдСрдкреНрдЯ/рдУрдкрдиреНрд╕рдПрд╕рдПрд▓/рд▓рд┐рдм" рдПрдХреНрд╕рдкреЛрд░реНрдЯ рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдЬреАрдПрд╕="-рдЖрдИ/рдпреВрдПрд╕рдЖрд░/рд▓реЛрдХрд▓/рдСрдкреНрдЯ/рдУрдкрдирдПрд╕рдПрд╕рдПрд▓/рд╢рд╛рдорд┐рд▓"

рдзрдиреНрдпрд╡рд╛рдж @vignzpie ! рдЖрдкрдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рдХрд┐рдпрд╛ :)

рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛ рдЧрдпрд╛

$ sudo apt-get install libpq-dev

рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛ рдЧрдпрд╛

$ sudo apt-get install libpq-dev

@pawelrubin рдореЗрд░рд╛ рдореБрджреНрджрд╛

@ye рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. рдЗрд╕рдХреЗ рдмрдЬрд╛рдп psycopg2-binary рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  2. рд╣реЛрдордмреНрд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ LDFLAGS рдФрд░ CPPFLAGS env vars рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд╕реНрд░реЛрдд рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВред

@frostming рд╣рд╛рдБ рдпрд╣ рд╕реНрд░реЛрдд рд╕реЗ рдУрдкрдирдПрд╕рдПрд▓ рд▓рд┐рдм рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдерд╛ред рдзрдиреНрдпрд╡рд╛рджред

1 рдФрд░ 2 рджреЛрдиреЛрдВ рдЕрдм рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдореИрдВ рдЕрдЬрдЧрд░ 3.8 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╛рдЗрдХреЛрдкрдЧ 2 рд╕рдВрд╕реНрдХрд░рдг 2.8.5 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди 1 рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @shaurmanchic рдиреЗ рдмрддрд╛рдпрд╛ (https://github.com/pypa/pipenv/issues/3991#issuecomment- 564498875)

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдЫ рдЭрдВрдбреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛!

рдирд┐рд░реНрдпрд╛рдд LDFLAGS="-L/usr/рд╕реНрдерд╛рдиреАрдп/рдСрдкреНрдЯ/openssl/lib"
рдирд┐рд░реНрдпрд╛рдд CPPFLAGS="-I/usr/local/opt/openssl/include"

@vignzpie рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП psycopg2 рд╕рдВрд╕реНрдХрд░рдг 2.8.5 . рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛

рдпрджрд┐ рдЖрдк рдпрд╣рд╛рдБ Linux рдЯрдХрд╕рд╛рд▓ 19 рджрд╛рд▓рдЪреАрдиреА 4.6.7 . рдкрд░ рд╣реИрдВ
рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛ рдЧрдпрд╛:

  • sudo apt-libpq-dev . рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  • рдкрд┐рдкреЗрдирд╡ рд░рди рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд psycopg2

рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛ рдЧрдпрд╛

$ sudo apt-get install libpq-dev

рдпрд╣ рднреА рдорджрдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕