I am attempting to upload a test script profiling device performance to Device Farm using Appium Python, but am having great trouble getting tests to run. I am mainly running into errors with the wheels being loaded, as Device Farm only takes linux_x86_64 and -none-all endings. I am packaging the test scripts on a Ubuntu virtual machine, so all downloaded wheels should be in the correct format. However, many of the wheels, such as numpy, take -manylinux1_x86_64, instead of linux_x86_64. Should this still be accepted by Device Farm? It won't even get past importing the test script unless I rename all of the non-universal wheels to have a "-none-all.whl" at the end. However, even if I do this, it throws a parsing error with the output below.
Any thoughts on what could be causing this error would be much appreciated!
Parsing Error:
Tried to install test dependency wheels by using the dependencies packages in the 'wheelhouse' directory, but failed. There are missing wheel dependencies in the 'wheelhouse' directory. Please make sure 'wheelhouse' directory has all the dependencies specified in 'requirements.txt' file. See the information below for more details.
'/tmp/scratchCdQ6f1.scratch/tmpI_jJ54/bin/pip install --use-wheel --no-index --find-links /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/wheelhouse --requirement /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt' failed.
Ignoring indexes: https://pypi.python.org/simple
Collecting Appium-Python-Client==0.26 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 1))
Collecting attrs==17.4.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 2))
Collecting funcsigs==1.0.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 3))
Collecting linecache2==1.0.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 4))
Collecting more-itertools==4.1.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 5))
Collecting mpmath==1.0.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 6))
Collecting numpy==1.14.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 7))
Could not find a version that satisfies the requirement numpy==1.14.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 7)) (from versions: )
No matching distribution found for numpy==1.14.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 7))
Tried to install test dependency wheels by downloading the dependencies packages from the internet, but failed. See the information below for more details.
'/tmp/scratchCdQ6f1.scratch/tmpI_jJ54/bin/pip install --use-wheel --requirement /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt' failed.
Collecting Appium-Python-Client==0.26 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 1))
/tmp/scratchCdQ6f1.scratch/tmpI_jJ54/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading Appium-Python-Client-0.26.tar.gz
Collecting attrs==17.4.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 2))
Downloading attrs-17.4.0-py2.py3-none-any.whl
Collecting funcsigs==1.0.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 3))
Downloading funcsigs-1.0.2-py2.py3-none-any.whl
Collecting linecache2==1.0.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 4))
Downloading linecache2-1.0.0-py2.py3-none-any.whl
Collecting more-itertools==4.1.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 5))
Downloading more_itertools-4.1.0-py2-none-any.whl (47kB)
Collecting mpmath==1.0.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 6))
Downloading mpmath-1.0.0.tar.gz (511kB)
Collecting numpy==1.14.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 7))
Downloading numpy-1.14.2.zip (4.9MB)
Collecting pandas==0.22.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 8))
Downloading pandas-0.22.0.tar.gz (11.3MB)
Collecting parameterized==0.6.1 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 9))
Downloading parameterized-0.6.1-py2.py3-none-any.whl
Collecting patsy==0.5.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 10))
Downloading patsy-0.5.0-py2.py3-none-any.whl (232kB)
Collecting pluggy==0.6.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 11))
Downloading pluggy-0.6.0.tar.gz
Collecting psutil==5.4.3 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 12))
Downloading psutil-5.4.3.tar.gz (412kB)
Collecting py==1.5.3 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 13))
Downloading py-1.5.3-py2.py3-none-any.whl (84kB)
Collecting pytest==3.5.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 14))
Downloading pytest-3.5.0-py2.py3-none-any.whl (194kB)
Collecting python-dateutil==2.7.2 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 15))
Downloading python_dateutil-2.7.2-py2.py3-none-any.whl (212kB)
Collecting pytz==2018.3 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 16))
Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
Collecting scikit-learn==0.19.1 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 17))
Downloading scikit-learn-0.19.1.tar.gz (9.5MB)
Collecting scipy==1.0.1 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 18))
Downloading scipy-1.0.1.tar.gz (15.5MB)
Collecting selenium==3.11.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 19))
Downloading selenium-3.11.0-py2.py3-none-any.whl (943kB)
Collecting six==1.11.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 20))
Downloading six-1.11.0-py2.py3-none-any.whl
Collecting sklearn==0.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 21))
Downloading sklearn-0.0.tar.gz
Collecting statsmodels==0.8.0 (from -r /tmp/scratchCdQ6f1.scratch/test-packageV9qjSS/requirements.txt (line 22))
Downloading statsmodels-0.8.0.tar.gz (9.5MB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/tmp/pip-build-r5nGyL/statsmodels/setup.py", line 335, in <module>
from numpy.distutils.misc_util import get_info
ImportError: No module named numpy.distutils.misc_util
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-r5nGyL/statsmodels
/tmp/scratchCdQ6f1.scratch/tmpI_jJ54/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
You are using pip version 7.1.2, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Packaging Code
cd Desktop/
virtualenv workspace
cd workspace
source bin/activate
pip install pytest
mkdir tests/
mkdir test_data/
cd test_data/
cp -a /home/jacob/Desktop/test_data_bundle2/ .
cd ..
cd tests/
cp /home/jacob/Desktop/test_wordcount.py .
cd ..
cd lib/python2.7/site-packages/
pip install unittest2
pip install Appium-Python-Client
pip install parameterized
pip install numpy
pip install sklearn
pip install psutil
pip install statsmodels
pip install mpmath
cd ../../..
py.test --collect-only tests/
pip freeze > requirements.txt
pip wheel --wheel-dir wheelhouse -r requirements.txt
find . -name '__pycache__' -type d -exec rm -r {} +
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
cd wheelhouse/
mv numpy-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl numpy-1.14.2-cp27-cp27mu-none-any.whl
mv pandas-0.22.0-cp27-cp27mu-manylinux1_x86_64.whl pandas-0.22.0-cp27-cp27mu-none-any.whl
mv scikit_learn-0.19.1-cp27-cp27mu-manylinux1_x86_64.whl scikit_learn-0.19.1-cp27-cp27mu-none-any.whl
mv scipy-1.0.1-cp27-cp27mu-manylinux1_x86_64.whl scipy-1.0.1-cp27-cp27mu-none-any.whl
mv statsmodels-0.8.0-cp27-cp27mu-manylinux1_x86_64.whl statsmodels-0.8.0-cp27-cp27mu-none-any.whl
cd ..
zip -r test_bundle_v2_5.zip tests/ wheelhouse/ test_data/ requirements.txt
UPDATE #1:
Contents of requirements.txt
Appium-Python-Client==0.26
attrs==17.4.0
funcsigs==1.0.2
linecache2==1.0.0
more-itertools==4.1.0
mpmath==1.0.0
numpy==1.14.2
pandas==0.22.0
parameterized==0.6.1
patsy==0.5.0
pluggy==0.6.0
psutil==5.4.3
py==1.5.3
pytest==3.5.0
python-dateutil==2.7.2
pytz==2018.3
scikit-learn==0.19.1
scipy==1.0.1
selenium==3.11.0
six==1.11.0
sklearn==0.0
statsmodels==0.8.0
traceback2==1.4.0
unittest2==1.1.0
Contents of wheelhouse folder: Screenshot of wheelhouse folder