Bundletester deps fail in a py35 virtualenv, but succeed (installation) in a py27 virtualenv. However, juju-wait is python3-only, and fails upon execution in the py27 virtualenv.
py35
ubuntu@osci-bastion:/tmp⟫ virtualenv -p python3.5 venv35
Running virtualenv with interpreter /usr/bin/python3.5
Using base prefix '/usr'
New python executable in /tmp/venv35/bin/python3.5
Also creating executable in /tmp/venv35/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
ubuntu@osci-bastion:/tmp⟫ . venv35/bin/activate
(venv35) ubuntu@osci-bastion:/tmp⟫ pip install bundletester
Collecting bundletester
Using cached bundletester-0.11.2.tar.gz
Collecting blessings (from bundletester)
Using cached blessings-1.6.tar.gz
Collecting charm-tools (from bundletester)
Using cached charm-tools-2.2.0.tar.gz
Collecting coverage (from bundletester)
Using cached coverage-4.3.4-cp35-cp35m-manylinux1_x86_64.whl
Collecting juju-deployer>=0.6.0 (from bundletester)
Using cached juju-deployer-0.10.0.tar.gz
Collecting lazr.authentication (from bundletester)
Using cached lazr.authentication-0.1.3.tar.gz
Collecting mock (from bundletester)
Using cached mock-2.0.0-py2.py3-none-any.whl
Collecting nose (from bundletester)
Using cached nose-1.3.7-py3-none-any.whl
Collecting requests<=2.9.1 (from bundletester)
Using cached requests-2.9.1-py2.py3-none-any.whl
Collecting simplejson>=3.8.0 (from bundletester)
Collecting websocket-client (from bundletester)
Using cached websocket_client-0.40.0.tar.gz
Collecting juju-wait (from bundletester)
Using cached juju_wait-2.5.1-py2.py3-none-any.whl
Collecting launchpadlib<1.11 (from charm-tools->bundletester)
Using cached launchpadlib-1.10.5.tar.gz
Collecting cheetah<=2.4.4 (from charm-tools->bundletester)
Using cached Cheetah-2.4.4.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-xui0597r/cheetah/setup.py", line 10, in <module>
import SetupTools
File "/tmp/pip-build-xui0597r/cheetah/SetupTools.py", line 50
except DistutilsPlatformError, x:
^
SyntaxError: invalid syntax
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-xui0597r/cheetah/
(venv35) 1 ubuntu@osci-bastion:/tmp⟫
py27
ubuntu@osci-bastion:/tmp⟫ virtualenv -p python2.7 venv27
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /tmp/venv27/bin/python2.7
Also creating executable in /tmp/venv27/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
ubuntu@osci-bastion:/tmp⟫ . venv27/bin/activate
(venv27) ubuntu@osci-bastion:/tmp⟫ pip install bundletester
Collecting bundletester
Using cached bundletester-0.11.2.tar.gz
Collecting blessings (from bundletester)
Using cached blessings-1.6.tar.gz
Collecting charm-tools (from bundletester)
Using cached charm-tools-2.2.0.tar.gz
Collecting coverage (from bundletester)
Downloading coverage-4.3.4-cp27-cp27mu-manylinux1_x86_64.whl (189kB)
100% |████████████████████████████████| 194kB 1.0MB/s
Collecting juju-deployer>=0.6.0 (from bundletester)
Using cached juju-deployer-0.10.0.tar.gz
Collecting lazr.authentication (from bundletester)
Using cached lazr.authentication-0.1.3.tar.gz
Collecting mock (from bundletester)
Using cached mock-2.0.0-py2.py3-none-any.whl
Collecting nose (from bundletester)
Downloading nose-1.3.7-py2-none-any.whl (154kB)
100% |████████████████████████████████| 163kB 958kB/s
Collecting requests<=2.9.1 (from bundletester)
Using cached requests-2.9.1-py2.py3-none-any.whl
Collecting simplejson>=3.8.0 (from bundletester)
Collecting websocket-client (from bundletester)
Using cached websocket_client-0.40.0.tar.gz
Collecting juju-wait (from bundletester)
Using cached juju_wait-2.5.1-py2.py3-none-any.whl
Collecting launchpadlib<1.11 (from charm-tools->bundletester)
Using cached launchpadlib-1.10.5.tar.gz
Collecting cheetah<=2.4.4 (from charm-tools->bundletester)
Using cached Cheetah-2.4.4.tar.gz
Collecting pyyaml==3.11 (from charm-tools->bundletester)
Downloading PyYAML-3.11.zip (371kB)
100% |████████████████████████████████| 378kB 1.2MB/s
Collecting paramiko<2.0.0 (from charm-tools->bundletester)
Downloading paramiko-1.18.2-py2.py3-none-any.whl (173kB)
100% |████████████████████████████████| 174kB 2.5MB/s
Collecting libcharmstore (from charm-tools->bundletester)
Using cached libcharmstore-0.0.7.tar.gz
Collecting ruamel.yaml<=0.10.23 (from charm-tools->bundletester)
Downloading ruamel.yaml-0.10.23.tar.gz (228kB)
100% |████████████████████████████████| 235kB 1.7MB/s
Collecting pathspec<=0.3.4 (from charm-tools->bundletester)
Downloading pathspec-0.3.4.tar.gz
Collecting otherstuf<=1.1.0 (from charm-tools->bundletester)
Downloading otherstuf-1.1.0-py2.py3-none-any.whl
Collecting path.py<=8.1.2 (from charm-tools->bundletester)
Downloading path.py-8.1.2-py2.py3-none-any.whl
Requirement already satisfied: pip>=1.5.4 in ./venv27/lib/python2.7/site-packages (from charm-tools->bundletester)
Collecting jujubundlelib (from charm-tools->bundletester)
Collecting virtualenv>=1.11.4 (from charm-tools->bundletester)
Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 408kB/s
Collecting colander<=1.0b1 (from charm-tools->bundletester)
Downloading colander-1.0b1.tar.gz (113kB)
100% |████████████████████████████████| 122kB 980kB/s
Collecting jsonschema<=2.5.1 (from charm-tools->bundletester)
Downloading jsonschema-2.5.1-py2.py3-none-any.whl
Collecting secretstorage<2.3.0 (from charm-tools->bundletester)
Downloading SecretStorage-2.2.1.tar.gz
Collecting jujuclient>=0.53 (from juju-deployer>=0.6.0->bundletester)
Downloading jujuclient-0.54.0.tar.gz
Requirement already satisfied: six in ./venv27/lib/python2.7/site-packages (from juju-deployer>=0.6.0->bundletester)
Collecting httplib2 (from lazr.authentication->bundletester)
Downloading httplib2-0.10.3.tar.gz (204kB)
100% |████████████████████████████████| 204kB 663kB/s
Collecting oauth (from lazr.authentication->bundletester)
Downloading oauth-1.0.1.tar.gz
Requirement already satisfied: setuptools in ./venv27/lib/python2.7/site-packages (from lazr.authentication->bundletester)
Collecting wsgi_intercept (from lazr.authentication->bundletester)
Downloading wsgi_intercept-1.5.0.tar.gz
Collecting zope.interface (from lazr.authentication->bundletester)
Downloading zope.interface-4.4.0-cp27-cp27mu-manylinux1_x86_64.whl (171kB)
100% |████████████████████████████████| 174kB 2.8MB/s
Collecting funcsigs>=1; python_version < "3.3" (from mock->bundletester)
Using cached funcsigs-1.0.2-py2.py3-none-any.whl
Collecting pbr>=0.11 (from mock->bundletester)
Downloading pbr-3.0.0-py2.py3-none-any.whl (98kB)
100% |████████████████████████████████| 102kB 4.3MB/s
Collecting backports.ssl_match_hostname (from websocket-client->bundletester)
Downloading backports.ssl_match_hostname-3.5.0.1.tar.gz
Collecting keyring (from launchpadlib<1.11->charm-tools->bundletester)
Downloading keyring-10.3.2-py2.py3-none-any.whl
Collecting lazr.restfulclient>=0.9.19 (from launchpadlib<1.11->charm-tools->bundletester)
Downloading lazr.restfulclient-0.13.1.tar.gz (55kB)
100% |████████████████████████████████| 61kB 2.9MB/s
Collecting lazr.uri (from launchpadlib<1.11->charm-tools->bundletester)
Downloading lazr.uri-1.0.3.tar.gz
Collecting testresources (from launchpadlib<1.11->charm-tools->bundletester)
Downloading testresources-2.0.1-py2.py3-none-any.whl
Collecting wadllib (from launchpadlib<1.11->charm-tools->bundletester)
Downloading wadllib-1.3.2.tar.gz (60kB)
100% |████████████████████████████████| 61kB 1.0MB/s
Collecting Markdown>=2.0.1 (from cheetah<=2.4.4->charm-tools->bundletester)
Downloading Markdown-2.6.8.tar.gz (307kB)
100% |████████████████████████████████| 317kB 1.4MB/s
Collecting ecdsa<2.0,>=0.11 (from paramiko<2.0.0->charm-tools->bundletester)
Downloading ecdsa-0.13-py2.py3-none-any.whl (86kB)
100% |████████████████████████████████| 92kB 791kB/s
Collecting pycrypto!=2.4,<3.0,>=2.1 (from paramiko<2.0.0->charm-tools->bundletester)
Downloading pycrypto-2.6.1.tar.gz (446kB)
100% |████████████████████████████████| 450kB 534kB/s
Collecting theblues<1.0,>=0.3.7 (from libcharmstore->charm-tools->bundletester)
Using cached theblues-0.3.8.tar.gz
Collecting ruamel.base>=1.0.0 (from ruamel.yaml<=0.10.23->charm-tools->bundletester)
Downloading ruamel.base-1.0.0-py2-none-any.whl
Collecting ruamel.ordereddict (from ruamel.yaml<=0.10.23->charm-tools->bundletester)
Downloading ruamel.ordereddict-0.4.9-cp27-cp27mu-manylinux1_x86_64.whl (99kB)
100% |████████████████████████████████| 102kB 1.8MB/s
Collecting stuf>=0.9.16 (from otherstuf<=1.1.0->charm-tools->bundletester)
Downloading stuf-0.9.16-py2-none-any.whl
Collecting translationstring (from colander<=1.0b1->charm-tools->bundletester) [7/343]
Downloading translationstring-1.3-py2.py3-none-any.whl
Collecting functools32; python_version == "2.7" (from jsonschema<=2.5.1->charm-tools->bundletester)
Using cached functools32-3.2.3-2.zip
Requirement already satisfied: appdirs>=1.4.0 in ./venv27/lib/python2.7/site-packages (from setuptools->lazr.authentication->bundletester)
Requirement already satisfied: packaging>=16.8 in ./venv27/lib/python2.7/site-packages (from setuptools->lazr.authentication->bundletester)
Collecting parse>=1.6.6 (from stuf>=0.9.16->otherstuf<=1.1.0->charm-tools->bundletester)
Downloading parse-1.8.0.tar.gz
Requirement already satisfied: pyparsing in ./venv27/lib/python2.7/site-packages (from packaging>=16.8->setuptools->lazr.authentication->bundletester)
Building wheels for collected packages: bundletester, blessings, charm-tools, juju-deployer, lazr.authentication, websocket-client, launchpadlib, cheetah, pyyaml, libcharmstore, ruamel.yaml, pathspec, colander, secretstorage, jujuclient, httplib2, oauth, wsgi-intercept, ba
ckports.ssl-match-hostname, lazr.restfulclient, lazr.uri, wadllib, Markdown, pycrypto, theblues, functools32, parse
Running setup.py bdist_wheel for bundletester ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/c6/c9/4d/b2835b7f28480295b81a08b88f9778264826a17ce3d84b109c
Running setup.py bdist_wheel for blessings ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/a5/7c/ba/e52b14bbd1b8cdeeb0771b03e1cca9b9d438c6e0054144a508
Running setup.py bdist_wheel for charm-tools ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/ae/bd/7c/bd79556288784e961db32f776e27eff64a306b896a74595b7e
Running setup.py bdist_wheel for juju-deployer ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/82/42/92/aacc4a7123ab4873b6211882f6e99caeac679709dec42ff987
Running setup.py bdist_wheel for lazr.authentication ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/07/2b/c8/9cd51613d0f46d58481683b2e2b58ecb08d47ecc93596e83c3
Running setup.py bdist_wheel for websocket-client ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/d1/5e/dd/93da015a0ecc8375278b05ad7f0452eff574a044bcea2a95d2
Running setup.py bdist_wheel for launchpadlib ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/d4/dc/2d/e294471ccc99a09ee4b7ec8b8ecff5cd84b72d6836879d94fa
Running setup.py bdist_wheel for cheetah ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/e9/63/a7/e7eb3181fe51fef80412ed66869e8c6cff41cf531efb2b34fa
Running setup.py bdist_wheel for pyyaml ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/4a/bf/14/d79994d19a59d4f73efdafb8682961f582d45ed6b459420346
Running setup.py bdist_wheel for libcharmstore ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/f9/61/52/38797fdc535359248e13591048907d72d3e8309645315d9a41
Running setup.py bdist_wheel for ruamel.yaml ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/e2/d8/5f/415a3580eb8fd56bee276e4a8787bbf1e99cbdae92515c2cd4
Running setup.py bdist_wheel for pathspec ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/05/fc/50/1a7e8fc57b03fe4c1299f1cf04e89ac8606614769ca65a9f5f
Running setup.py bdist_wheel for colander ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/f5/5f/8a/3f8b66a87bed21e00938a1801b6574fa1212c2cc1f6ee5f85f
Running setup.py bdist_wheel for secretstorage ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/01/34/53/764cf44dfd692de5d3539d185498761970439ea61ec22c98a5
Running setup.py bdist_wheel for jujuclient ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/9f/e3/54/9ab05193db7e73063e9fad722e23439453fdf82df0160b77cf
Running setup.py bdist_wheel for httplib2 ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/ca/ac/5f/749651f7925b231103f5316cacca82a487810c22d30f011c0c
Running setup.py bdist_wheel for oauth ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/99/2a/6e/a33104e6da25c7fea0b4481231f530f1fef08433d9e7eca159
Running setup.py bdist_wheel for wsgi-intercept ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/f1/83/1b/62c62246d3780bff72470c4c600ed92c006743964beac7ad5e
Running setup.py bdist_wheel for backports.ssl-match-hostname ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/5d/72/36/b2a31507b613967b728edc33378a5ff2ada0f62855b93c5ae1
Running setup.py bdist_wheel for lazr.restfulclient ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/45/fd/aa/2fad2690edc2d3b0f8f3a6d0dcb3fdb736cbc0331c6d87b906
Running setup.py bdist_wheel for lazr.uri ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/de/38/fd/d5b94f4f52624318840180bc1bbf6c5e1e5b0e3f9e1431573b
Running setup.py bdist_wheel for wadllib ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/05/19/2e/5ba7351bed091401d018d9bce39e9721de07455c36d58c6291
Running setup.py bdist_wheel for Markdown ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/85/a7/08/33ee5cd488d0365d8bed79d1d4e5c28dd3fbfc7f6d0ad4bb09
Running setup.py bdist_wheel for pycrypto ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/80/1f/94/f76e9746864f198eb0e304aeec319159fa41b082f61281ffce
Running setup.py bdist_wheel for theblues ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/31/6a/e2/19e1650cc3c9a602cb7ae8b8030d5ad55aeceeb8ed9d52eab0
Running setup.py bdist_wheel for functools32 ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/3c/d0/09/cd78d0ff4d6cfecfbd730782a7815a4571cd2cd4d2ed6e69d9
Running setup.py bdist_wheel for parse ... done
Stored in directory: /home/ubuntu/.cache/pip/wheels/6d/fb/03/3be9f0e6410f8f06e0b9ef9930d8a6ec5930bd0b765ab1638c
Successfully built bundletester blessings charm-tools juju-deployer lazr.authentication websocket-client launchpadlib cheetah pyyaml libcharmstore ruamel.yaml pathspec colander secretstorage jujuclient httplib2 oauth wsgi-intercept backports.ssl-match-hostname lazr.restful
client lazr.uri wadllib Markdown pycrypto theblues functools32 parse
Installing collected packages: blessings, httplib2, pycrypto, secretstorage, keyring, oauth, wsgi-intercept, zope.interface, lazr.authentication, lazr.uri, wadllib, lazr.restfulclient, pbr, testresources, launchpadlib, Markdown, cheetah, pyyaml, ecdsa, paramiko, requests,
jujubundlelib, theblues, libcharmstore, ruamel.base, ruamel.ordereddict, ruamel.yaml, pathspec, parse, stuf, otherstuf, path.py, virtualenv, translationstring, colander, functools32, jsonschema, charm-tools, coverage, backports.ssl-match-hostname, websocket-client, jujucli
ent, juju-deployer, funcsigs, mock, nose, simplejson, juju-wait, bundletester
Successfully installed Markdown-2.6.8 backports.ssl-match-hostname-3.5.0.1 blessings-1.6 bundletester-0.11.2 charm-tools-2.2.0 cheetah-2.4.4 colander-1.0b1 coverage-4.3.4 ecdsa-0.13 funcsigs-1.0.2 functools32-3.2.3.post2 httplib2-0.10.3 jsonschema-2.5.1 juju-deployer-0.10.
0 juju-wait-2.5.1 jujubundlelib-0.5.3 jujuclient-0.54.0 keyring-10.3.2 launchpadlib-1.10.5 lazr.authentication-0.1.3 lazr.restfulclient-0.13.1 lazr.uri-1.0.3 libcharmstore-0.0.7 mock-2.0.0 nose-1.3.7 oauth-1.0.1 otherstuf-1.1.0 paramiko-1.18.2 parse-1.8.0 path.py-8.1.2 pat
hspec-0.3.4 pbr-3.0.0 pycrypto-2.6.1 pyyaml-3.11 requests-2.9.1 ruamel.base-1.0.0 ruamel.ordereddict-0.4.9 ruamel.yaml-0.10.23 secretstorage-2.2.1 simplejson-3.10.0 stuf-0.9.16 testresources-2.0.1 theblues-0.3.8 translationstring-1.3 virtualenv-15.1.0 wadllib-1.3.2 websock
et-client-0.40.0 wsgi-intercept-1.5.0 zope.interface-4.4.0
(venv27) ubuntu@osci-bastion:/tmp⟫ juju-wait
Traceback (most recent call last):
File "/tmp/venv27/bin/juju-wait", line 11, in <module>
sys.exit(wait_cmd())
File "/tmp/venv27/local/lib/python2.7/site-packages/juju_wait/__init__.py", line 236, in wait_cmd
wait(log, args.wait_for_workload, max_wait)
File "/tmp/venv27/local/lib/python2.7/site-packages/juju_wait/__init__.py", line 272, in wait
status = get_status()
File "/tmp/venv27/local/lib/python2.7/site-packages/juju_wait/__init__.py", line 134, in get_status
json_status = run_or_die([juju_exe(), 'status', '--format=json'], env=env)
File "/tmp/venv27/local/lib/python2.7/site-packages/juju_wait/__init__.py", line 102, in juju_exe
if not shutil.which(juju):
AttributeError: 'module' object has no attribute 'which'
Running into the same issue here with py35 environment with tox. This is hindering us from moving to python 3.5 environments in our TravisCI environment.
Bundletester deps fail in a py35 virtualenv, but succeed (installation) in a py27 virtualenv. However, juju-wait is python3-only, and fails upon execution in the py27 virtualenv.
py35
py27