Deploy-ng: Problem with pip packages without wheel

My application uses PyYAML package to parse yaml file, so I have it present in requirements.txt. However on pypi.org there is no wheel available for Linux or MacOS. this is not a problem for pip as it just uses the .tar.gz instead, but deploy-ng requires a binary wheel for the target.

Collecting PyYAML (from -r /Users/ld/git/cosmonium/requirements.txt (line 2))
  Could not find a version that satisfies the requirement PyYAML (from -r /Users/ld/git/cosmonium/requirements.txt (line 2)) (from versions: )
No matching distribution found for PyYAML (from -r /Users/ld/git/cosmonium/requirements.txt (line 2))
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Traceback (most recent call last):
  File "setup.py", line 24, in <module>
    'platforms': ['macosx_10_6_x86_64'] 
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/Library/Python/2.7/site-packages/direct/dist/commands.py", line 352, in run
    self.build_runtimes(platform, True)
  File "/Library/Python/2.7/site-packages/direct/dist/commands.py", line 485, in build_runtimes
    wheelpaths = self.download_wheels(platform)
  File "/Library/Python/2.7/site-packages/direct/dist/commands.py", line 408, in download_wheels
    subprocess.check_call([sys.executable, '-m', 'pip'] + pip_args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '-m', 'pip', 'download', '-d', '/Users/ld/git/cosmonium/build/__whl_cache__', '-r', '/Users/ld/git/cosmonium/requirements.txt', '--only-binary', ':all:', '--platform', 'macosx_10_6_x86_64', '--abi', 'cp27m', '--extra-index-url', 'https://archive.panda3d.org/simple/opt']' returned non-zero exit status 1

As workaround, I have specified another requirements.txt in my setup.py file using requirements_path.

There’s an issue pending on the PyYAML issue tracker for this:

An easy workaround is to manually copy the lib/yaml directory to your own game folder.

Thinking about it, indeed deploy-ng can’t obviously know if what’s inside the tar.gz is a pure-python library or something that is platform dependent :frowning:

Having two requirements.txt files is confusing, I guess that means one more third-party lib to add to the source.