pipenv рд░рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/somescript.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ pipenv рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ PATH рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/somescript.py рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ
$ python -V
рдЕрдЬрдЧрд░ 3.6$ pipenv --version
рдорд╛рд╕реНрдЯрд░рдкрд┐рдкреЗрдирд╡ рдирд┐рд░реНрдорд┐рдд рд╡рд░реНрдЪреБрдЕрд▓рди рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ
рдЪрд░рдг реирем/реиреп : ls $PROJECT_PATH рдЪрд▓рд╛рдПрдВ | grep setup.py
---> 7811236ec5ee рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
setup.py
рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ 7811236ec5ee
---> ba280fab02c3
рдЪрд░рдг реирен/реиреп : рдкрд╛рдЗрдкреЗрдВрд╡ рдЪрд▓рд╛рдПрдБ $PROJECT_PATH/setup.py рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ
---> b48df28fbe12 рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рддреНрд░реБрдЯрд┐: /opt/project/setup.py рдЖрджреЗрд╢ рдкрде рдХреЗ рднреАрддрд░ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред
рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ:
рд░рди рдПрд▓рдПрд╕ $PROJECT_PATH | grep setup.py
рд░рди рдкрд┐рдкреЗрдирд╡ рд░рди $PROJECT_PATH/setup.py рд╡рд┐рдХрд╕рд┐рдд
рдФрд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдЗрд╕рдореЗрдВ рдмрджрд▓рдирд╛:
ENV SHELL=/bin/bash
RUN pipenv shell -c "$PROJECT_PATH/setup.py develop; exit $?"
рдХрд╛ рдкрд░рд┐рдгрд╛рдо
Spawning environment shell (/bin/bash). Use 'exit' to leave.
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
load_entry_point('pipenv==9.0.3', 'console_scripts', 'pipenv')()
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 2204, in shell
do_shell(three=three, python=python, fancy=fancy, shell_args=shell_args)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 2167, in do_shell
c.interact(escape_character=None)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/pexpect/pty_spawn.py", line 744, in interact
mode = tty.tcgetattr(self.STDIN_FILENO)
termios.error: (25, 'Inappropriate ioctl for device')
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: pipenv run python -c "import this"
(рдмрд╕ import this
рдХреЛ рдЕрдкрдиреЗ рддрд░реНрдХ рд╕реЗ рдмрджрд▓реЗрдВ)ред
@jacekjab рдЖрдк рдбреЙрдХрд░ рдХреЗ рдЕрдВрджрд░ рдкрд┐рдкреЗрдирд╡ рд╢реЗрд▓ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдк рд╢реЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред pipenv run
рдкрде рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ/рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрдмреИрдВрдЧ рдХреЗ рд╕рд╛рде рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ pipenv run python somescript.py
рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╢реЗрдмреИрдВрдЧ рдЬреЛрдбрд╝реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@jacekjab рдЖрдк рдбреЙрдХрд░ рдХреЗ рдЕрдВрджрд░ рдкрд┐рдкреЗрдирд╡ рд╢реЗрд▓ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдк рд╢реЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
pipenv run
рдкрде рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ/рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрдмреИрдВрдЧ рдХреЗ рд╕рд╛рде рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣
pipenv run python somescript.py
рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╢реЗрдмреИрдВрдЧ рдЬреЛрдбрд╝реЗрдВред