CommandFailedError(cmd) bench.utils.CommandFailedError: ./env/bin/pip install -q -e ./apps/hello --no-cache-dir

Hi I noticed with all the new installations of bench and erpnext i have been installing, when i create a new app, it fails

This is the error please help : sudo bench new-app hello
[sudo] password for erp:
INFO:bench.app:creating new app hello
App Title (default: Hello): h
App Title should start with a letter and it can only consist of letters, numbers, spaces and underscores
App Title (default: Hello):
App Description: hei
App Publisher: h
App Email: h@h.co
App Icon (default ‘octicon octicon-file-directory’):
App Color (default ‘grey’):
App License (default ‘MIT’):
‘hello’ created at /home/frappe/frappe-bench/apps/hello
INFO:bench.app:installing hello
INFO:bench.utils:./env/bin/pip install -q -e ./apps/hello --no-cache-dir
Command “python setup.py egg_info” failed with error code 1 in /home/frappe/frappe-bench/apps/hello/
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 11, in
load_entry_point(‘bench’, ‘console_scripts’, ‘bench’)()
File “/home/frappe/.bench/bench/cli.py”, line 40, in cli
bench_command()
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/home/frappe/.bench/bench/commands/make.py”, line 48, in new_app
new_app(app_name)
File “/home/frappe/.bench/bench/app.py”, line 156, in new_app
install_app(app, bench_path=bench_path)
File “/home/frappe/.bench/bench/app.py”, line 167, in install_app
find_links=find_links))
File “/home/frappe/.bench/bench/utils.py”, line 153, in exec_cmd
raise CommandFailedError(cmd)
bench.utils.CommandFailedError: ./env/bin/pip install -q -e ./apps/hello --no-cache-dir

I think the issue is still with boilerplate.py the \n is there but when its creating its doesn’t do that it instead creates a new line.

this is the apps setup.py :

-- coding: utf-8 --

from setuptools import setup, find_packages
import re, ast

with open(‘requirements.txt’) as f:
install_requires = f.read().strip().split(’
')

get version from version variable in cus/init.py

_version_re = re.compile(r’version\s+=\s+(.*)')

with open(‘cus/init.py’, ‘rb’) as f:
version = str(ast.literal_eval(_version_re.search(
f.read().decode(‘utf-8’)).group(1)))

@chris.hawkson did you fix it? I’m with the same issue.

Replace:

install_requires = f.read().strip().split(’
’)

with:

install_requires = f.read().strip().split(’\n’)

Will this commit be merged in master ?

https://github.com/frappe/frappe/commit/c899c94c967b80b43bcb8f2469d78b661ef6d46b

i solved this 1 by :

i open file setup.py inside your new app module
i saw this code not correct
step 1

i fixed the code to :
step 2

after that, i copy this ./env/bin/pip install -q -e ./apps/crook --no-cache-dir
to my ssh at frappe-bench folder and enter

after that i put the new module name inside
/home/frappe/frappe-bench/sites/apps.txt

step 4

and i install the module to the site i want to install it… install like usual with bench --site [sitename] install-app [appname]
and its work for me

hope it will patch to the master…

1 Like

(the above will work ) (escape new line char while creating boilerplate for app by saurabh6790 · Pull Request #5533 · frappe/frappe · GitHub ) but i think this is the solution but it was only merged with develop

thats adding an extra backslash to the \n in the boilerplate.py setup_template