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

Multi-platform handling of sdist dependencies #645

Closed
AuHau opened this issue Jan 12, 2019 · 1 comment
Closed

Multi-platform handling of sdist dependencies #645

AuHau opened this issue Jan 12, 2019 · 1 comment

Comments

@AuHau
Copy link

AuHau commented Jan 12, 2019

I am trying to build PEX for my CLI tool and I am running into a problem with my dependencies that are distributed as sdist (are downloaded as tar.gz files), while trying to build PEX targetting multiple platforms.

Currently, I want to create two PEX builds, one for macOS and one for Linux.

If I am reading this right, PEX is trying to build the sdist into wheel and then include that into the PEX environment. But the wheel is created for the current platform that the PEX build is happening on, therefore the PEX's build process fails because of the multiple platform's constraints.

pex version: 1.6.0
Python version: 3.6.5
pip version: 18.1
build platform: macosx_10_14
git repo: https://github.com/auhau/gitrack/

$ pex -vvvvvv --index-url=https://test.pypi.org/simple/ --python=python3 -r requirements.txt -o ./build/gitrack.macosx_x86_64 --platform macosx_10_12_x86_64 --platform macosx_10_13_x86_64 --platform macosx_10_14_x86_64 -e gitrack.main gitrack setuptools

pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x101656c50>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016ae828>
pex: crawling link i=0 link=Link('file:///Users/c5272397/.pex/build') follow_links=False
pex: crawling link i=0 link=Link('https://pypi.org/simple/gitrack/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/gitrack/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016ae860>
pex: crawling link i=0 link=Link('https://pypi.org/simple/setuptools/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/setuptools/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016ae7b8>
pex: crawling link i=0 link=Link('https://pypi.org/simple/gitpython/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/gitpython/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016ae7b8>
pex: crawling link i=0 link=Link('https://pypi.org/simple/click/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/click/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016ae710>
pex: crawling link i=0 link=Link('https://pypi.org/simple/appdirs/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/appdirs/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016aebe0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/togglcli/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/togglcli/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1021b09b0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/inquirer/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/inquirer/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1021cf6a0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/click-completion/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/click-completion/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1021d9fd0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/pbr/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/pbr/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1021d9f60>
pex: crawling link i=0 link=Link('https://pypi.org/simple/requests/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/requests/') follow_links=False
pex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/gitrack-0.1.8-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/gitrpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpwsc721az/gitrack-0.1.8-py2.py3-none-any.whl into distribpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/setuptools-40.6.3-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/setuptools-40.6.3-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/pex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpqpay9e_g/setuptools-40.6.3-py2.py3-none-any.whl into dispex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/GitPython-2.1.11-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/GitPython-2.1.11-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/Gpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmp1rcpb1nd/GitPython-2.1.11-py2.py3-none-any.whl into distpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/Click-7.0-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/Click-7.0-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/Click-7.pex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpslimzzd4/Click-7.0-py2.py3-none-any.whl into distributiopex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/appdirs-1.4.3-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/appdirs-1.4.3-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/appdpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpn95_ivc2/appdirs-1.4.3-py2.py3-none-any.whl into distribpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/togglCli-2.0.0.0b3-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/togglCli-2.0.0.0b3-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/buildpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmptp9h8kiq/togglCli-2.0.0.0b3-py2.py3-none-any.whl into dipex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/inquirer-2.5.1-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/inquirer-2.5.1-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/inqpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmp31mwu68d/inquirer-2.5.1-py2.py3-none-any.whl into distripex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/click_completion-0.5.0-py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/click_completion-0.5.0-py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/buildpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpv6w6rmn6/click_completion-0.5.0-py3-none-any.whl into dipex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/pbr-5.1.1-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/pbr-5.1.1-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/pbr-5.1.pex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpiqr8sczv/pbr-5.1.1-py2.py3-none-any.whl into distributiopex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/requests-2.21.0-py2.py3-none-any.whlpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/requests-2.21.0-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/repex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpzzaj_qqw/requests-2.21.0-py2.py3-none-any.whl into distrpex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016d6630>
pex: crawling link i=0 link=Link('https://pypi.org/simple/gitdb2/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/gitdb2/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016d6630>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016aed30>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016aed30>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016ae898>
pex: crawling link i=0 link=Link('https://pypi.org/simple/pendulum/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/pendulum/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1016aebe0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/validate-email/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/validate-email/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102386128>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102386128>
pex: crawling link i=0 link=Link('https://pypi.org/simple/ptable/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/ptable/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102386128>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102386978>
pex: crawling link i=0 link=Link('https://pypi.org/simple/blessings/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/blessings/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x10243b940>
pex: crawling link i=0 link=Link('https://pypi.org/simple/readchar/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/readchar/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102443b00>
pex: crawling link i=0 link=Link('https://pypi.org/simple/shellingham/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/shellingham/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102443b00>
pex: crawling link i=0 link=Link('https://pypi.org/simple/six/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/six/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102386cf8>
pex: crawling link i=0 link=Link('https://pypi.org/simple/jinja2/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/jinja2/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x10243b7b8>
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102454be0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/urllib3/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/urllib3/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x10243b9b0>
pex: crawling link i=0 link=Link('https://pypi.org/simple/certifi/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/certifi/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x102443b00>
pex: crawling link i=0 link=Link('https://pypi.org/simple/idna/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/idna/') follow_links=False
pex: Constructed RequestsContext context <pex.http.RequestsContext object at 0x1024a09e8>
pex: crawling link i=0 link=Link('https://pypi.org/simple/chardet/') follow_links=False
pex: crawling link i=1 link=Link('https://test.pypi.org/simple/chardet/') follow_links=False
pex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/gitdb2-2.0.5-py2.py3-none-any.whl :: Fetching file:///Users/c5272397/.pex/build/gitdbpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpgd0duw48/gitdb2-2.0.5-py2.py3-none-any.whl into distribupex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/pendulum-2.0.4.tar.gzpex: Building pex :: Resolving distributions :: Fetching file:///Users/c5272397/.pex/build/pendulum-2.0.4.tar.gz :: Fetching file:///Users/c5272397/.pex/build/pendulum-2.0.4.tapex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpbr6j6fz6/pendulum-2.0.4.tar.gz into distributionpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpbr6j6fz6/pendulum-2.0.4.tar.gz into distribution :: Packpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpbr6j6fz6/pendulum-2.0.4.tar.gz into distribution :: Packpex: Building pex :: Resolving distributions :: Translating /private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpbr6j6fz6/pendulum-2.0.4.tar.gz into distribution :: Packaging pendulum :: Installing /var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpra7l2gip :: Isolating pex in Chroot(/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpirvz8gkpex: Target package WheelPackage('file:///private/var/folders/gm/7q4dg34d4mn3hpclqqyg733c0000gn/T/tmpxeqgoj11/pendulum-2.0.4-cp36-cp36m-macosx_10_13_x86_64.whl') is not compatible with [('py3', 'none', 'macosx_10_11_fat64'), ('cp36', 'cp36m', 'macosx_10_4_fat32'), ('cp36', 'abi3', 'macosx_10_7_x86_64'), ('cp36', 'cp36d', 'macosx_10_1_fat32'), ('cp36', 'cp36dmu', 'macosx_10_6_universal'), ('cp36', 'none', 'macosx_10_5_x86_64'), ('cp36', 'cp36m', 'macosx_10_6_fat64'), ('cp36', 'cp36dm', 'macosx_10_4_universal'), ('cp36', 'cp36u', 'macosx_10_11_universal'), ('cp36', 'cp36u', 'macosx_10_5_fat32'), ('cp36', 'abi3', 'macosx_10_10_x86_64'), ('py3', 'none', 'macosx_10_2_fat32'), ('cp36', 'abi3', 'macosx_10_9_universal'), ('cp36', 'cp36dm', 'macosx_10_1_fat32'), ('py3', 'none', 'macosx_10_9_x86_64'), ('cp36', 'abi3', 'macosx_10_4_x86_64'), ('cp36', 'abi3', 'macosx_10_4_intel'), ('cp36', 'cp36mu', 'macosx_10_9_fat64'), ('cp36', 'abi3', 'macosx_10_5_x86_64'), ('cp36', 'cp36dm', 'macosx_10_8_intel'), ('cp36', 'abi3', 'macosx_10_5_fat32'), ('cp36', 'cp36dmu', 'macosx_10_10_fat64'), ('cp36', 'cp36u', 'macosx_10_8_fat32'), ('cp36', 'cp36u', 'macosx_10_7_fat64'), ('cp36', 'abi3', 'macosx_10_7_fat32'), ('cp36', 'cp36mu', 'macosx_10_4_universal'), ('py3', 'none', 'macosx_10_11_intel'), ('py3', 'none', 'macosx_10_10_fat32'), ('cp36', 'cp36u', 'macosx_10_11_fat64'), ('cp36', 'abi3', 'macosx_10_12_intel'), ('py3', 'none', 'macosx_10_10_fat64'), ('cp36', 'abi3', 'macosx_10_9_x86_64'), ('cp36', 'cp36m', 'macosx_10_3_fat32'), ('cp36', 'abi3', 'macosx_10_4_fat64'), ('cp36', 'abi3','macosx_10_8_fat32'), ('cp36', 'abi3', 'macosx_10_7_fat64'), ('cp36', 'cp36dm', 'macosx_10_12_fat64'), ('py3', 'none', 'macosx_10_12_universal'), ('cp36', 'cp36dmu', 'macosx_10_12_fat64'), ('cp36', 'cp36u', 'macosx_10_7_fat32'), ('cp36', 'none', 'macosx_10_12_intel'), ('cp36', 'cp36u', 'macosx_10_9_x86_64'), ('cp36', 'abi3', 'macosx_10_11_fat64'), ('cp36', 'cp36u', 'macosx_10_12_intel'), ('py3', 'none', 'macosx_10_10_intel'), ('py3', 'none', 'macosx_10_5_universal'), ('cp36', 'cp36dmu', 'macosx_10_0_universal'), ('cp36', 'none', 'macosx_10_11_fat32'), ('cp36', 'abi3', 'macosx_10_6_fat64'), ('cp36', 'cp36u', 'macosx_10_4_fat64'), ('cp36', 'cp36mu', 'macosx_10_0_universal'), ('cp36', 'cp36dmu', 'macosx_10_8_universal'), ('cp36', 'cp36d', 'macosx_10_6_intel'), ('cp36', 'cp36d', 'macosx_10_7_intel'), ('cp36', 'abi3', 'macosx_10_2_fat32'), ('cp36', 'cp36mu', 'macosx_10_8_intel'), ('py3', 'none', 'macosx_10_9_universal'), ('cp36', 'cp36dm', 'macosx_10_9_fat64'), ('cp36', 'abi3', 'macosx_10_12_universal'), ('cp36', 'cp36dmu', 'macosx_10_8_intel'), ('cp36', 'cp36d', 'macosx_10_12_fat64'), ('py3', 'none', 'macosx_10_12_x86_64'), ('cp36', 'cp36d', 'macosx_10_6_universal'), ('cp36', 'cp36dmu', 'macosx_10_1_fat32'), ('cp36', 'cp36d', 'macosx_10_7_universal'), ('cp36', 'cp36u', 'macosx_10_6_fat64'), ('cp36', 'none', 'macosx_10_7_x86_64'), ('cp36', 'none', 'macosx_10_10_fat64'), ('cp36', 'cp36mu', 'macosx_10_4_x86_64'), ('cp36', 'none', 'macosx_10_10_intel'), ('cp36', 'none', 'macosx_10_6_fat64'), ('cp36', 'abi3', 'macosx_10_4_fat32'), ('cp36', 'cp36dmu', 'macosx_10_11_fat32'), ('py3', 'none', 'macosx_10_12_intel'), ('cp36', 'none', 'macosx_10_2_universal'), ('cp36', 'cp36m', 'macosx_10_12_intel'), ('cp36', 'cp36d', 'macosx_10_4_fat32'), ('cp36', 'cp36d', 'macosx_10_11_universal'), ('cp36', 'cp36mu', 'macosx_10_8_universal'), ('cp36', 'cp36d', 'macosx_10_10_universal'), ('cp36', 'cp36d', 'macosx_10_10_fat64'), ('cp36', 'abi3', 'macosx_10_6_intel'), ('cp36', 'cp36m', 'macosx_10_7_fat32'), ('cp36', 'cp36d', 'macosx_10_6_fat64'), ('cp36', 'cp36u', 'macosx_10_7_universal'), ('cp36', 'cp36dm','macosx_10_6_universal'), ('cp36', 'cp36dm', 'macosx_10_12_universal'), ('cp36', 'none', 'macosx_10_10_x86_64'), ('cp36', 'cp36d', 'macosx_10_9_intel'), ('cp36', 'cp36dm', 'macosx_10_11_universal'), ('cp36', 'none', 'macosx_10_4_fat32'), ('cp36', 'cp36mu', 'macosx_10_2_universal'), ('cp36', 'none', 'macosx_10_10_universal'), ('cp36', 'cp36m', 'macosx_10_4_intel'), ('cp36', 'cp36dm', 'macosx_10_8_fat64'), ('cp36', 'cp36dm', 'macosx_10_6_fat64'), ('cp36', 'cp36dm', 'macosx_10_10_fat32'), ('cp36', 'cp36u', 'macosx_10_3_fat32'), ('cp36', 'abi3', 'macosx_10_7_universal'), ('cp36', 'none', 'macosx_10_9_intel'), ('cp36', 'cp36u', 'macosx_10_6_intel'), ('py3', 'none', 'macosx_10_5_fat32'), ('cp36', 'cp36dmu', 'macosx_10_10_x86_64'), ('cp36', 'cp36d', 'macosx_10_9_x86_64'), ('cp36', 'none', 'macosx_10_8_fat64'), ('cp36', 'cp36d', 'macosx_10_2_fat32'), ('cp36', 'cp36dm', 'macosx_10_5_intel'), ('cp36', 'cp36dm', 'macosx_10_11_intel'), ('py3', 'none', 'macosx_10_1_fat32'), ('cp36', 'cp36d', 'macosx_10_8_fat64'), ('cp36', 'cp36dm', 'macosx_10_5_fat32'), ('cp36', 'cp36mu', 'macosx_10_7_x86_64'), ('cp36', 'abi3', 'macosx_10_11_universal'), ('cp36', 'cp36d', 'macosx_10_11_fat64'), ('cp36', 'none', 'macosx_10_1_fat32'), ('cp36','cp36d', 'macosx_10_5_x86_64'), ('cp36', 'cp36d', 'macosx_10_8_fat32'), ('cp36', 'cp36d', 'macosx_10_7_fat64'), ('cp36', 'cp36dmu', 'macosx_10_9_fat32'), ('cp36', 'cp36dmu', 'macosx_10_7_x86_64'), ('cp36', 'cp36mu', 'macosx_10_8_x86_64'), ('cp36', 'cp36mu', 'macosx_10_10_x86_64'), ('py3', 'none', 'macosx_10_8_fat64'), ('cp36', 'cp36u', 'macosx_10_10_fat32'), ('cp36', 'cp36u', 'macosx_10_4_intel'), ('cp36', 'cp36dm', 'macosx_10_9_x86_64'), ('cp36', 'cp36dm', 'macosx_10_11_x86_64'), ('cp36', 'cp36dmu', 'macosx_10_8_fat32'),('cp36', 'cp36dmu', 'macosx_10_7_fat64'), ('cp36', 'cp36d', 'macosx_10_5_intel'), ('cp36', 'abi3', 'macosx_10_12_fat64'), ('cp36', 'cp36m', 'macosx_10_6_intel'), ('cp36', 'cp36m', 'macosx_10_7_intel'), ('cp36', 'abi3', 'macosx_10_11_intel'), ('cp36', 'abi3', 'macosx_10_10_fat32'), ('cp36', 'cp36dmu', 'macosx_10_11_fat64'), ('cp36', 'cp36dm', 'macosx_10_11_fat64'), ('cp36', 'abi3', 'macosx_10_10_fat64'), ('cp36', 'cp36dmu', 'macosx_10_5_fat64'), ('cp36', 'cp36mu', 'macosx_10_3_fat32'), ('cp36', 'cp36dm', 'macosx_10_9_fat32'), ('cp36', 'cp36dm', 'macosx_10_8_x86_64'), ('cp36', 'cp36m', 'macosx_10_7_universal'), ('cp36', 'cp36dmu', 'macosx_10_7_fat32'), ('cp36', 'cp36dmu', 'macosx_10_2_universal'), ('cp36', 'cp36u', 'macosx_10_12_fat64'), ('cp36', 'cp36dmu', 'macosx_10_6_fat32'), ('cp36', 'cp36dmu', 'macosx_10_12_intel'), ('cp36', 'cp36dmu', 'macosx_10_9_x86_64'), ('cp36', 'cp36mu', 'macosx_10_11_x86_64'), ('cp36', 'cp36u', 'macosx_10_5_x86_64'), ('py3', 'none', 'macosx_10_5_fat64'), ('py3', 'none', 'macosx_10_1_universal'), ('cp36', 'cp36dmu', 'macosx_10_10_intel'), ('py3', 'none', 'macosx_10_4_intel'), ('cp36', 'cp36mu', 'macosx_10_4_fat64'), ('py3', 'none', 'macosx_10_4_fat32'), ('cp36', 'cp36d', 'macosx_10_6_x86_64'), ('cp36', 'cp36d', 'macosx_10_12_intel'), ('cp36', 'cp36mu', 'macosx_10_11_fat32'), ('cp36', 'cp36d', 'macosx_10_7_fat32'), ('cp36', 'cp36mu', 'macosx_10_3_universal'), ('cp36', 'cp36u', 'macosx_10_6_x86_64'), ('cp36', 'cp36d', 'macosx_10_9_fat32'), ('cp36', 'none', 'macosx_10_8_intel'), ('cp36', 'cp36u', 'macosx_10_2_fat32'), ('cp36', 'none','macosx_10_6_x86_64'), ('cp36', 'cp36d', 'macosx_10_3_fat32'), ('cp36', 'cp36dmu', 'macosx_10_4_fat32'), ('cp36', 'cp36mu', 'macosx_10_9_intel'), ('cp36', 'cp36dmu', 'macosx_10_6_fat64'), ('cp36', 'none', 'macosx_10_7_intel'), ('cp36', 'cp36dm', 'macosx_10_9_universal'), ('cp36', 'cp36dmu', 'macosx_10_8_fat64'), ('cp36', 'cp36mu', 'macosx_10_6_fat64'), ('cp36', 'none', 'macosx_10_7_fat32'), ('cp36', 'cp36u', 'macosx_10_9_intel'), ('cp36', 'none', 'macosx_10_9_fat32'), ('cp36', 'cp36dm', 'macosx_10_3_fat32'), ('cp36', 'cp36mu', 'macosx_10_10_universal'), ('py3', 'none', 'macosx_10_12_fat64'), ('cp36', 'cp36dmu', 'macosx_10_12_universal'), ('cp36', 'abi3', 'macosx_10_8_intel'), ('cp36', 'cp36mu','macosx_10_2_fat32'), ('cp36', 'cp36mu', 'macosx_10_6_x86_64'), ('cp36', 'cp36dm', 'macosx_10_4_intel'), ('cp36', 'cp36d', 'macosx_10_9_universal'), ('cp36', 'cp36mu', 'macosx_10_12_universal'), ('cp36', 'cp36u', 'macosx_10_10_universal'), ('cp36', 'cp36dmu', 'macosx_10_6_x86_64'), ('cp36', 'cp36dm', 'macosx_10_10_intel'), ('cp36', 'cp36dm', 'macosx_10_5_fat64'), ('cp36', 'cp36d', 'macosx_10_4_x86_64'), ('cp36', 'cp36u', 'macosx_10_1_universal'), ('cp36', 'cp36d', 'macosx_10_10_intel'), ('cp36', 'cp36dmu', 'macosx_10_9_intel'), ('cp36', 'cp36mu', 'macosx_10_5_x86_64'), ('cp36', 'cp36m', 'macosx_10_12_fat64'), ('py3', 'none', 'macosx_10_9_fat32'), ('cp36', 'cp36dmu', 'macosx_10_3_universal'), ('cp36', 'cp36d', 'macosx_10_2_universal'), ('py3', 'none', 'macosx_10_7_fat32'), ('cp36', 'cp36u', 'macosx_10_12_universal'), ('cp36', 'none', 'macosx_10_11_universal'), ('cp36', 'none', 'macosx_10_5_fat64'), ('cp36', 'cp36m', 'macosx_10_10_fat32'), ('cp36', 'cp36dmu', 'macosx_10_10_universal'), ('cp36', 'cp36m', 'macosx_10_11_intel'), ('cp36', 'cp36m', 'macosx_10_5_x86_64'), ('cp36', 'cp36dm', 'macosx_10_11_fat32'), ('cp36', 'cp36mu', 'macosx_10_10_fat64'), ('cp36', 'abi3', 'macosx_10_3_fat32'), ('cp36', 'cp36d', 'macosx_10_5_fat64'), ('cp36', 'none', 'macosx_10_12_universal'), ('cp36', 'cp36dmu', 'macosx_10_9_fat64'), ('cp36', 'cp36mu', 'macosx_10_9_x86_64'), ('cp36', 'cp36u', 'macosx_10_7_intel'), ('cp36', 'cp36mu', 'macosx_10_6_fat32'), ('cp36', 'cp36m', 'macosx_10_10_universal'), ('py3', 'none', 'macosx_10_12_fat32'), ('cp36', 'cp36dm', 'macosx_10_0_universal'), ('cp36', 'cp36m', 'macosx_10_10_fat64'), ('cp36', 'cp36dm', 'macosx_10_7_x86_64'), ('cp36', 'cp36dmu', 'macosx_10_5_intel'), ('cp36', 'none', 'macosx_10_9_x86_64'), ('cp36', 'cp36mu', 'macosx_10_11_fat64'), ('cp36', 'cp36m', 'macosx_10_9_intel'), ('cp36', 'cp36dm', 'macosx_10_10_x86_64'), ('cp36', 'cp36dmu', 'macosx_10_7_intel'), ('cp36', 'cp36u', 'macosx_10_9_fat32'), ('cp36', 'cp36dm', 'macosx_10_8_universal'), ('cp36', 'cp36dmu', 'macosx_10_11_intel'), ('py3', 'none', 'macosx_10_0_fat32'), ('py3', 'none', 'macosx_10_5_intel'), ('cp36', 'cp36dmu', 'macosx_10_10_fat32'), ('cp36', 'cp36mu', 'macosx_10_11_universal'), ('cp36', 'none', 'macosx_10_11_fat64'), ('cp36', 'none', 'macosx_10_8_fat32'), ('cp36', 'none', 'macosx_10_7_fat64'), ('cp36', 'cp36dmu', 'macosx_10_11_universal'), ('cp36', 'abi3', 'macosx_10_8_x86_64'), ('cp36', 'cp36m', 'macosx_10_6_x86_64'), ('py3', 'none', 'macosx_10_8_fat32'), ('py3', 'none', 'macosx_10_7_fat64'), ('cp36', 'cp36m', 'macosx_10_2_fat32'), ('cp36', 'abi3', 'macosx_10_9_fat32'), ('cp36', 'cp36m', 'macosx_10_12_universal'), ('cp36', 'none', 'any'), ('py3', 'none', 'any'), ('cp36', 'none', 'macosx_10_5_intel'), ('cp36', 'cp36u', 'macosx_10_11_intel'), ('cp36', 'cp36m', 'macosx_10_1_universal'), ('cp36', 'cp36m', 'macosx_10_8_fat64'), ('cp36', 'cp36mu', 'macosx_10_6_universal'), ('cp36', 'cp36u', 'macosx_10_12_fat32'), ('cp36', 'abi3', 'macosx_10_0_fat32'), ('cp36', 'cp36mu', 'macosx_10_11_intel'), ('cp36', 'cp36u', 'macosx_10_10_fat64'), ('cp36', 'abi3', 'macosx_10_5_universal'), ('cp36', 'cp36mu', 'macosx_10_10_fat32'), ('cp36','cp36u', 'macosx_10_8_x86_64'), ('cp36', 'cp36u', 'macosx_10_2_universal'), ('cp36', 'cp36mu', 'macosx_10_7_intel'), ('cp36', 'none', 'macosx_10_6_fat32'), ('cp36', 'cp36d', 'macosx_10_4_universal'), ('cp36', 'cp36mu', 'macosx_10_6_intel'), ('cp36', 'cp36u', 'macosx_10_0_fat32'), ('cp36', 'abi3', 'macosx_10_5_fat64'), ('cp36', 'abi3', 'macosx_10_12_fat32'), ('cp36', 'cp36m', 'macosx_10_5_intel'), ('cp36', 'none', 'macosx_10_8_x86_64'), ('cp36', 'cp36u', 'macosx_10_10_intel'), ('py3', 'none', 'macosx_10_10_x86_64'), ('cp36', 'abi3', 'macosx_10_2_universal'), ('cp36', 'cp36u', 'macosx_10_5_universal'), ('cp36', 'cp36m', 'macosx_10_11_x86_64'), ('cp36', 'abi3', 'macosx_10_6_fat32'), ('cp36', 'cp36mu', 'macosx_10_7_universal'), ('py3', 'none', 'macosx_10_0_universal'), ('cp36', 'none', 'macosx_10_3_universal'), ('cp36', 'abi3', 'macosx_10_10_intel'), ('py3', 'none', 'macosx_10_8_universal'), ('py3', 'none', 'macosx_10_9_fat64'), ('cp36', 'cp36u', 'macosx_10_12_x86_64'), ('cp36', 'cp36u', 'macosx_10_8_fat64'), ('cp36', 'cp36d', 'macosx_10_8_intel'), ('cp36', 'cp36mu', 'macosx_10_1_fat32'), ('cp36', 'none', 'macosx_10_3_fat32'), ('cp36', 'abi3', 'macosx_10_9_intel'), ('py3', 'none', 'macosx_10_7_x86_64'), ('py3', 'none', 'macosx_10_2_universal'), ('cp36', 'abi3', 'macosx_10_3_universal'), ('cp36', 'cp36dm', 'macosx_10_6_intel'), ('cp36', 'cp36m', 'macosx_10_11_fat32'), ('cp36', 'cp36u', 'macosx_10_8_intel'), ('cp36', 'cp36dm', 'macosx_10_7_intel'), ('cp36', 'abi3', 'macosx_10_12_x86_64'), ('cp36', 'abi3', 'macosx_10_10_universal'), ('cp36', 'abi3', 'macosx_10_8_fat64'), ('cp36', 'cp36m', 'macosx_10_0_fat32'), ('cp36', 'none', 'macosx_10_9_universal'), ('py3', 'none', 'macosx_10_4_x86_64'), ('cp36', 'cp36m', 'macosx_10_9_fat32'), ('cp36', 'cp36m', 'macosx_10_8_x86_64'), ('cp36', 'none', 'macosx_10_4_x86_64'), ('cp36', 'cp36m', 'macosx_10_5_universal'), ('cp36', 'cp36dm', 'macosx_10_7_universal'), ('cp36', 'abi3', 'macosx_10_6_x86_64'), ('py3', 'none', 'macosx_10_11_fat32'), ('cp36', 'none', 'macosx_10_12_x86_64'), ('cp36', 'cp36dm', 'macosx_10_10_fat64'), ('cp36', 'cp36m', 'macosx_10_7_x86_64'), ('cp36', 'cp36m', 'macosx_10_12_fat32'), ('cp36', 'cp36u', 'macosx_10_8_universal'), ('cp36', 'cp36dm', 'macosx_10_9_intel'), ('cp36', 'abi3', 'macosx_10_5_intel'), ('py3', 'none', 'macosx_10_3_fat32'), ('cp36', 'cp36m', 'macosx_10_9_universal'), ('cp36', 'none', 'macosx_10_9_fat64'), ('cp36', 'cp36dm', 'macosx_10_10_universal'), ('cp36', 'none', 'macosx_10_5_universal'), ('cp36', 'cp36m', 'macosx_10_4_x86_64'), ('cp36', 'abi3', 'macosx_10_7_intel'), ('py3', 'none', 'macosx_10_8_intel'), ('cp36', 'cp36d', 'macosx_10_12_universal'), ('cp36', 'cp36mu', 'macosx_10_9_universal'), ('py3', 'none', 'macosx_10_6_x86_64'), ('cp36', 'none', 'macosx_10_11_intel'), ('cp36', 'cp36dm', 'macosx_10_4_fat64'), ('cp36', 'cp36mu', 'macosx_10_5_fat64'), ('cp36', 'cp36d', 'macosx_10_9_fat64'), ('cp36', 'abi3', 'macosx_10_1_universal'), ('cp36', 'cp36u', 'macosx_10_5_intel'), ('cp36', 'cp36m', 'macosx_10_10_intel'), ('cp36', 'cp36dmu', 'macosx_10_3_fat32'), ('cp36', 'cp36m', 'macosx_10_10_x86_64'), ('cp36', 'cp36d', 'macosx_10_1_universal'), ('cp36', 'abi3', 'macosx_10_9_fat64'), ('cp36', 'cp36mu', 'macosx_10_4_intel'), ('cp36', 'cp36m', 'macosx_10_2_universal'), ('cp36', 'abi3', 'macosx_10_11_x86_64'), ('cp36', 'cp36dm', 'macosx_10_2_fat32'), ('cp36', 'cp36d', 'macosx_10_10_fat32'), ('cp36', 'cp36d', 'macosx_10_11_intel'), ('cp36', 'cp36dmu', 'macosx_10_4_universal'), ('cp36', 'none', 'macosx_10_4_fat64'), ('cp36', 'cp36u', 'macosx_10_11_fat32'), ('cp36', 'none', 'macosx_10_1_universal'), ('cp36', 'cp36mu', 'macosx_10_10_intel'), ('cp36', 'cp36mu', 'macosx_10_7_fat32'), ('cp36', 'none', 'macosx_10_10_fat32'), ('cp36', 'cp36m', 'macosx_10_5_fat64'), ('cp36', 'cp36m', 'macosx_10_12_x86_64'), ('cp36', 'none', 'macosx_10_11_x86_64'), ('cp36', 'cp36dm', 'macosx_10_5_x86_64'), ('cp36', 'cp36mu', 'macosx_10_12_intel'), ('cp36', 'cp36u', 'macosx_10_11_x86_64'), ('cp36', 'cp36d', 'macosx_10_4_fat64'), ('py3', 'none', 'macosx_10_4_universal'), ('cp36', 'cp36dm', 'macosx_10_4_fat32'), ('py3', 'none', 'macosx_10_8_x86_64'), ('cp36', 'cp36dm', 'macosx_10_1_universal'), ('cp36', 'cp36d', 'macosx_10_11_x86_64'), ('cp36', 'cp36dm', 'macosx_10_6_fat32'), ('cp36', 'cp36mu', 'macosx_10_12_x86_64'), ('cp36', 'cp36dmu', 'macosx_10_12_fat32'), ('cp36', 'cp36dmu', 'macosx_10_8_x86_64'), ('cp36', 'cp36u', 'macosx_10_10_x86_64'), ('cp36', 'cp36m', 'macosx_10_8_intel'), ('cp36', 'cp36mu', 'macosx_10_9_fat32'), ('cp36', 'cp36mu', 'macosx_10_5_universal'), ('cp36', 'cp36m', 'macosx_10_8_universal'), ('cp36', 'cp36dm', 'macosx_10_3_universal'), ('cp36', 'cp36dmu', 'macosx_10_0_fat32'), ('cp36', 'abi3', 'macosx_10_6_universal'),('cp36', 'cp36m', 'macosx_10_0_universal'), ('cp36', 'cp36dmu', 'macosx_10_5_universal'), ('cp36', 'cp36mu', 'macosx_10_0_fat32'), ('cp36', 'none', 'macosx_10_5_fat32'), ('cp36', 'cp36u', 'macosx_10_5_fat64'), ('cp36', 'cp36mu', 'macosx_10_5_intel'), ('cp36', 'cp36dm', 'macosx_10_8_fat32'), ('cp36', 'cp36dm', 'macosx_10_7_fat64'), ('cp36', 'cp36d', 'macosx_10_6_fat32'), ('cp36', 'none', 'macosx_10_4_universal'), ('cp36', 'cp36d', 'macosx_10_0_fat32'), ('py3', 'none', 'macosx_10_11_x86_64'), ('cp36', 'cp36u', 'macosx_10_7_x86_64'), ('cp36', 'cp36d', 'macosx_10_8_x86_64'), ('cp36', 'cp36u', 'macosx_10_6_fat32'), ('py3', 'none', 'macosx_10_4_fat64'), ('cp36', 'cp36dm', 'macosx_10_6_x86_64'), ('cp36', 'cp36d', 'macosx_10_5_fat32'), ('cp36', 'cp36dmu', 'macosx_10_4_intel'), ('cp36', 'none', 'macosx_10_0_fat32'), ('cp36', 'cp36dmu', 'macosx_10_12_x86_64'), ('cp36', 'cp36mu', 'macosx_10_12_fat32'), ('cp36', 'cp36u', 'macosx_10_6_universal'), ('cp36', 'cp36dmu', 'macosx_10_5_fat32'), ('cp36', 'cp36u', 'macosx_10_9_universal'), ('cp36', 'cp36d', 'macosx_10_12_fat32'), ('cp36', 'cp36u', 'macosx_10_4_x86_64'), ('cp36', 'cp36d', 'macosx_10_3_universal'), ('cp36', 'cp36m', 'macosx_10_4_universal'), ('py36', 'none', 'any'), ('py3', 'none', 'macosx_10_9_intel'), ('py3', 'none', 'macosx_10_6_fat64'), ('cp36', 'cp36dm', 'macosx_10_0_fat32'), ('cp36', 'none', 'macosx_10_12_fat32'), ('py3', 'none', 'macosx_10_10_universal'), ('py3', 'none', 'macosx_10_11_universal'), ('cp36', 'cp36m', 'macosx_10_9_fat64'), ('cp36', 'cp36dmu', 'macosx_10_9_universal'), ('cp36', 'cp36dmu', 'macosx_10_4_x86_64'), ('cp36', 'cp36dm', 'macosx_10_12_fat32'), ('cp36', 'cp36m', 'macosx_10_1_fat32'), ('cp36', 'cp36dmu', 'macosx_10_5_x86_64'), ('cp36', 'cp36mu', 'macosx_10_8_fat64'), ('py3', 'none', 'macosx_10_7_universal'), ('cp36', 'abi3', 'macosx_10_0_universal'), ('cp36', 'cp36dm', 'macosx_10_2_universal'), ('cp36', 'cp36dm', 'macosx_10_7_fat32'), ('cp36', 'cp36dmu', 'macosx_10_1_universal'), ('py3', 'none', 'macosx_10_6_universal'), ('cp36', 'cp36m', 'macosx_10_6_universal'), ('cp36', 'cp36dm', 'macosx_10_4_x86_64'), ('cp36', 'cp36d', 'macosx_10_12_x86_64'), ('cp36', 'cp36d', 'macosx_10_11_fat32'), ('cp36', 'cp36dmu', 'macosx_10_2_fat32'), ('cp36', 'none', 'macosx_10_6_intel'), ('cp36', 'cp36u', 'macosx_10_3_universal'), ('cp36', 'cp36dm', 'macosx_10_12_intel'), ('py3', 'none', 'macosx_10_7_intel'), ('cp36', 'cp36u', 'macosx_10_4_fat32'), ('py3', 'none', 'macosx_10_6_intel'), ('cp36', 'cp36dmu', 'macosx_10_4_fat64'), ('cp36', 'none', 'macosx_10_12_fat64'), ('cp36', 'cp36u', 'macosx_10_0_universal'), ('cp36', 'cp36d', 'macosx_10_5_universal'), ('cp36', 'cp36m', 'macosx_10_11_universal'), ('cp36', 'none', 'macosx_10_6_universal'), ('cp36', 'none', 'macosx_10_4_intel'), ('cp36', 'cp36u', 'macosx_10_9_fat64'),('cp36', 'none', 'macosx_10_7_universal'), ('cp36', 'cp36u', 'macosx_10_4_universal'), ('cp36', 'cp36d', 'macosx_10_7_x86_64'), ('cp36', 'cp36dm', 'macosx_10_12_x86_64'), ('cp36', 'none', 'macosx_10_0_universal'), ('cp36', 'cp36mu', 'macosx_10_12_fat64'), ('cp36', 'cp36u', 'macosx_10_1_fat32'), ('cp36', 'cp36mu', 'macosx_10_5_fat32'), ('cp36', 'abi3', 'macosx_10_8_universal'), ('cp36', 'cp36d', 'macosx_10_4_intel'), ('cp36', 'cp36mu', 'macosx_10_1_universal'), ('cp36', 'cp36dmu', 'macosx_10_11_x86_64'), ('cp36', 'cp36d', 'macosx_10_8_universal'), ('cp36', 'cp36mu', 'macosx_10_4_fat32'), ('cp36', 'cp36d', 'macosx_10_0_universal'), ('cp36', 'abi3', 'macosx_10_4_universal'), ('cp36', 'cp36m', 'macosx_10_6_fat32'), ('cp36', 'cp36dm', 'macosx_10_5_universal'), ('py3', 'none', 'macosx_10_3_universal'), ('cp36', 'none', 'macosx_10_8_universal'), ('cp36', 'cp36m', 'macosx_10_9_x86_64'), ('cp36', 'abi3', 'macosx_10_1_fat32'), ('cp36', 'cp36d', 'macosx_10_10_x86_64'), ('cp36', 'cp36m', 'macosx_10_5_fat32'), ('cp36', 'cp36mu', 'macosx_10_8_fat32'), ('cp36', 'cp36mu', 'macosx_10_7_fat64'), ('cp36', 'cp36dmu', 'macosx_10_7_universal'), ('cp3', 'none', 'any'), ('cp36', 'cp36m', 'macosx_10_3_universal'), ('cp36', 'cp36m', 'macosx_10_11_fat64'), ('cp36', 'abi3', 'macosx_10_11_fat32'), ('py3', 'none', 'macosx_10_6_fat32'), ('cp36', 'cp36m', 'macosx_10_8_fat32'), ('cp36', 'cp36m', 'macosx_10_7_fat64'),('cp36', 'cp36m', 'macosx_10_4_fat64'), ('cp36', 'none', 'macosx_10_2_fat32'), ('cp36', 'cp36dmu', 'macosx_10_6_intel'), ('py3', 'none', 'macosx_10_5_x86_64')]
Traceback (most recent call last):
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/bin/pex", line 11, in <module>
    sys.exit(main())
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/bin/pex.py", line 662, in main
    pex_builder = build_pex(reqs, options, resolver_options_builder)
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/bin/pex.py", line 592, in build_pex
    for resolved_dist in resolveds:
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/resolver.py", line 565, in resolve_multi
    use_manylinux=use_manylinux):
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/resolver.py", line 501, in resolve
    return resolver.resolve(resolvables_from_iterable(requirements, builder, interpreter=interpreter))
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/resolver.py", line 299, in resolve
    dist = self.build(package, resolvable.options)
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/resolver.py", line 378, in build
    dist = super(CachingResolver, self).build(package, options)
  File "/Users/c5272397/dev/giTrack/.direnv/python-3.6.5/lib/python3.6/site-packages/pex/resolver.py", line 257, in build
    raise Untranslateable('Package %s is not translateable by %s' % (package, translator))
pex.resolver.Untranslateable: Package SourcePackage('file:///Users/c5272397/.pex/build/pendulum-2.0.4.tar.gz') is not translateable by ChainedTranslator(WheelTranslator, EggTranslator, SourceTranslator)

Similarly when I run this as part of my CI build pipeline (that is running on Ubuntu Xenial), than it fails similarly: https://travis-ci.org/AuHau/giTrack/jobs/478828510

Is there something I have configured wrongly? Or am I missing something else?

Also I don't really understand why PEX is trying to do this sdist to bdist translation, since it looks like the final PEX file contains dependencies in extracted form (eq. .deps folder of the PEX zip contains folders with the dependecies). Why it won't directly include the sdist?

Thanks ahead for help!

@jsirois
Copy link
Member

jsirois commented Jan 29, 2019

Is there something I have configured wrongly? Or am I missing something else?

You're just missing the step of pre-building wheels for all the platforms you want your multi-platform pex to support. Most simply, you'd place the prebuilt wheels flat in a directory available via a network filesystem or HTTPS and then point to that directory with -f:

$ pex --help
...
  Resolver options:
    Tailor how to find, resolve and translate the packages that get put
    into the PEX environment.

    --pypi, --no-pypi, --no-index
                        Whether to use pypi to resolve dependencies; Default:
                        use pypi
    --pex-path=PEX_PATH
                        A colon separated list of other pex files to merge
                        into the runtime environment.
    -f PATH/URL, --find-links=PATH/URL, --repo=PATH/URL
                        Additional repository path (directory or URL) to look
                        for requirements.
...

Your CI link ( https://travis-ci.org/AuHau/giTrack/jobs/478828510) shows a command line of:

$ pex -vvv --index-url=https://test.pypi.org/simple/ --python=python3 -r requirements.txt -o ./build/gitrack.macosx_x86_64 --platform macosx_10_12_x86_64 --platform macosx_10_13_x86_64 --platform macosx_10_14_x86_64 -e gitrack.main gitrack setuptools

And pendulum only supplies macosx_10_14_x86_64 pre-built; so you fail on macosx_10_12_x86_64 and macosx_10_13_x86_64.

Also I don't really understand why PEX is trying to do this sdist to bdist translation, since it looks like the final PEX file contains dependencies in extracted form (eq. .deps folder of the PEX zip contains folders with the dependecies). Why it won't directly include the sdist?

The main design goal of pex is to create a hermetic pre-built executable. As such, including sdists inside the pex that are platform-specific and require building on each platform like pendulum would violate this goal and is an intentional non-feature of built pexes.

I'm going to close this as answered, but please ask away if the problem and solution aren't clear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants