<div dir="ltr">Looking through the source code of composer, it seems that if you specify "layer:xyz", it tries to download that layer. Changing <span style="font-size:12.8px">tengu composer.yaml to "includes: ['</span><span class="" style="font-size:12.8px;background-color:rgb(255,255,255)">juju</span><span style="font-size:12.8px">']" fixes this issue. Now I get a new error:</span><div><span style="font-size:12.8px"><br></span></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><span style="font-size:12.8px"><i>Traceback (most recent call last):</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/bin/charm-compose", line 9, in <module></i></span></div></div><div><div><span style="font-size:12.8px"><i>    load_entry_point('charm-tools==1.7.1', 'console_scripts', 'charm-compose')()</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 473, in main</i></span></div></div><div><div><span style="font-size:12.8px"><i>    composer()</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 398, in __call__</i></span></div></div><div><div><span style="font-size:12.8px"><i>    self.generate()</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 364, in generate</i></span></div></div><div><div><span style="font-size:12.8px"><i>    self.exec_plan(self.plan, self.layers)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 342, in exec_plan</i></span></div></div><div><div><span style="font-size:12.8px"><i>    tactic()</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/tactics.py", line 410, in __call__</i></span></div></div><div><div><span style="font-size:12.8px"><i>    spec)).throw_on_error()()</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/utils.py", line 192, in __call__</i></span></div></div><div><div><span style="font-size:12.8px"><i>    result.throw_on_error()</i></span></div></div><div><div><span style="font-size:12.8px"><i>  File "/usr/lib/python2.7/dist-packages/charmtools/utils.py", line 149, in throw_on_error</i></span></div></div><div><div><span style="font-size:12.8px"><i>    self.exit_code, self.command, output=self.output)</i></span></div></div><div><div><span style="font-size:12.8px"><i>subprocess.CalledProcessError: Command '('pip', 'install', '-t', Path(u'/tmp/tmpUUEfVc'), u'charms.reactive>=0.1.0,<2.0.0')' returned non-zero exit status 1</i></span></div></div></blockquote><div><div style="font-size:12.8px"><br></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Running this command manually shows a more informative error:</div><div style="font-size:12.8px"><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><span style="font-size:12.8px"><i>merlijn@travers:~/test/piptest$ pip install -t `pwd` "charms.reactive"</i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking charms.reactive</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading charms.reactive-0.3.4.tar.gz</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py (path:/tmp/pip-build-BZsLa7/charms.reactive/setup.py) egg_info for package charms.reactive</i></span></div></div><div><div><span style="font-size:12.8px"><i>    </i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking six (from charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading six-1.10.0-py2.py3-none-any.whl</i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking pyaml (from charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading pyaml-15.8.2.tar.gz</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py (path:/tmp/pip-build-BZsLa7/pyaml/setup.py) egg_info for package pyaml</i></span></div></div><div><div><span style="font-size:12.8px"><i>    </i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking charmhelpers>=0.5.0 (from charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading charmhelpers-0.5.0.tar.gz (121kB): 121kB downloaded</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py (path:/tmp/pip-build-BZsLa7/charmhelpers/setup.py) egg_info for package charmhelpers</i></span></div></div><div><div><span style="font-size:12.8px"><i>    </i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking PyYAML (from pyaml->charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading PyYAML-3.11.tar.gz (248kB): 248kB downloaded</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py (path:/tmp/pip-build-BZsLa7/PyYAML/setup.py) egg_info for package PyYAML</i></span></div></div><div><div><span style="font-size:12.8px"><i>    </i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking netaddr (from charmhelpers>=0.5.0->charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading netaddr-0.7.18-py2.py3-none-any.whl (1.5MB): 1.5MB downloaded</i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking Tempita (from charmhelpers>=0.5.0->charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading Tempita-0.5.2.tar.gz</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py (path:/tmp/pip-build-BZsLa7/Tempita/setup.py) egg_info for package Tempita</i></span></div></div><div><div><span style="font-size:12.8px"><i>    </i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking Jinja2 (from charmhelpers>=0.5.0->charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading Jinja2-2.8-py2.py3-none-any.whl (263kB): 263kB downloaded</i></span></div></div><div><div><span style="font-size:12.8px"><i>Downloading/unpacking MarkupSafe (from Jinja2->charmhelpers>=0.5.0->charms.reactive)</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Downloading MarkupSafe-0.23.tar.gz</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py (path:/tmp/pip-build-BZsLa7/MarkupSafe/setup.py) egg_info for package MarkupSafe</i></span></div></div><div><div><span style="font-size:12.8px"><i>    </i></span></div></div><div><div><span style="font-size:12.8px"><i>Installing collected packages: charms.reactive, six, pyaml, charmhelpers, PyYAML, netaddr, Tempita, Jinja2, MarkupSafe</i></span></div></div><div><div><span style="font-size:12.8px"><i>  Running setup.py install for charms.reactive</i></span></div></div><div><div><span style="font-size:12.8px"><i>    error: can't combine user with prefix, exec_prefix/home, or install_(plat)base</i></span></div></div><div><div><span style="font-size:12.8px"><i>    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-BZsLa7/charms.reactive/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-r65pbi-record/install-record.txt --single-version-externally-managed --compile --user --home=/tmp/tmpl0SSvH:</i></span></div></div><div><div><span style="font-size:12.8px"><i>    running install</i></span></div></div><div><div><span style="font-size:12.8px"><i><br></i></span></div></div><div><div><span style="font-size:12.8px"><i>error: can't combine user with prefix, exec_prefix/home, or install_(plat)base</i></span></div></div><div><div><span style="font-size:12.8px"><i><br></i></span></div></div><div><div><span style="font-size:12.8px"><i>----------------------------------------</i></span></div></div><div><div><span style="font-size:12.8px"><i>Cleaning up...</i></span></div></div><div><div><span style="font-size:12.8px"><i>Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-BZsLa7/charms.reactive/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-r65pbi-record/install-record.txt --single-version-externally-managed --compile --user --home=/tmp/tmpl0SSvH failed with error code 1 in /tmp/pip-build-BZsLa7/charms.reactive</i></span></div></div><div><div><span style="font-size:12.8px"><i>Storing debug log for failure in /home/merlijn/.pip/pip.log</i></span></div></div></blockquote><div><div style="font-size:12.8px"><br></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div><span style="font-size:12.8px">I'm stuck. Any idea how to continue?</span></div><div><span style="font-size:12.8px"><br></span><div><span style="font-size:12.8px"><br></span></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-10-07 9:38 GMT+02:00 Merlijn Sebrechts <span dir="ltr"><<a href="mailto:merlijn.sebrechts@gmail.com" target="_blank">merlijn.sebrechts@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all!<div><br></div><div><br></div><div>Since I have a few Charms that will install Juju, I'd like to put the "install Juju" part in a layer, and use Charm compose to avoid duplication of code.</div><div><br></div><div>I have encountered a few problems trying to use Charm compose. This is my directory structure:</div><div><br></div><div>JUJU_REPOSITORY</div><div>    |-----trusty</div><div>    |-----layers</div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>├── juju</div></div><div><div>│   ├── composer.yaml</div></div><div><div>│   ├── config.yaml</div></div><div><div>│   ├── metadata.yaml</div></div><div><div>│   ├── reactive</div></div><div><div>│   │   └── juju.py</div></div><div><div>│   ├── README.md</div></div><div><div>│   └── templates</div></div><div><div>│       ├── environments.yaml</div></div><div><div>│       └── juju.sh</div></div><div><div>└── tengu</div></div><div><div>    ├── composer.yaml</div></div><div><div>    ├── reactive</div></div><div><div>    │   └── tengu.py</div></div><div><div>    └── templates</div></div><div><br></div></blockquote>tengu composer.yaml: includes: ['layer:juju']<div>juju composer.yaml: includes: ['layer:basic']</div><div><br></div><div>When I run "charm compose tengu" I get the following error: </div><div><br></div><div><br></div><div><div>Traceback (most recent call last):</div><div>  File "/usr/bin/charm-compose", line 9, in <module></div><div>    load_entry_point('charm-tools==1.7.1', 'console_scripts', 'charm-compose')()</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 468, in main</div><div>    composer()</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 393, in __call__</div><div>    self.generate()</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 357, in generate</div><div>    layers = self.fetch()</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 193, in fetch</div><div>    return self.fetch_deps(layer)</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 197, in fetch_deps</div><div>    self.fetch_dep(layer, results)</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 234, in fetch_dep</div><div>    base_layer = Layer(base, self.deps).fetch()</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/__init__.py", line 81, in fetch</div><div>    self.directory = path(fetcher.fetch(self.target_repo))</div><div>  File "/usr/lib/python2.7/dist-packages/charmtools/compose/fetchers.py", line 85, in fetch</div><div>    path(res).rename(target)</div><div>  File "/usr/lib/python2.7/dist-packages/path.py", line 1148, in rename</div><div>    os.rename(self, new)</div><div>OSError: [Errno 2] No such file or directory</div></div><div><br></div><div><br></div><div>What could be going wrong here?</div><div><br></div><div><br></div><div><br></div><div><br></div><div>Kind regards</div><span class="HOEnZb"><font color="#888888"><div>Merlijn</div></font></span></div>
</blockquote></div><br></div>