pipenv run directory/somescript.py๋ฅผ ์ฌ์ฉํ๋ฉด PATH์์ directory/somescript.py๋ฅผ ์ฐพ๊ธฐ ๋๋ฌธ์ pipenv๊ฐ ์คํจํฉ๋๋ค.
$ python -V
ํ์ด์ฌ 3.6$ pipenv --version
๋ง์คํฐpipenv๋ ์์ฑ๋ virtualn ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
26/29๋จ๊ณ: ls $PROJECT_PATH ์คํ | grep setup.py
---> 7811236ec5ee์์ ์คํ
setup.py
์ค๊ฐ ์ปจํ
์ด๋ ์ ๊ฑฐ 7811236ec5ee
---> ba280fab02c3
27/29๋จ๊ณ: pipenv ์คํ $PROJECT_PATH/setup.py ๊ฐ๋ฐ ์คํ
---> b48df28fbe12์์ ์คํ
์ค๋ฅ: PATH ๋ด์์ /opt/project/setup.py ๋ช
๋ น์ ์ฐพ์ ์ ์์ต๋๋ค.
dockerfile์์ ์ถ์ถ:
์คํ ls $PROJECT_PATH | grep setup.py
RUN pipenv ์คํ $PROJECT_PATH/setup.py ๊ฐ๋ฐ
Dockerfile์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค.
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 ์คํ ์ถ์ ์ ๋ช
์๋ ํ์ ์
ธ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ Docker ๋ด๋ถ์์ pipenv ์
ธ์ ์คํํ ์ ์์ต๋๋ค. pipenv run
๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ shebang์ด ์๋ ๊ฒฝ๋ก์ ์ค์น๋ ์คํฌ๋ฆฝํธ/์์ฉ ํ๋ก๊ทธ๋จ์ ์ํ ๊ฒ์
๋๋ค.
๊ทํ์ ๊ฒฝ์ฐ์๋ ๋น์ ์ด ์ฐพ๊ณ ์๋ ๊ฒ์ด pipenv run python somescript.py
ํ๊ฑฐ๋ ์คํฌ๋ฆฝํธ ์๋จ์ shebang์ ์ถ๊ฐํ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@jacekjab ์คํ ์ถ์ ์ ๋ช ์๋ ํ์ ์ ธ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ Docker ๋ด๋ถ์์ pipenv ์ ธ์ ์คํํ ์ ์์ต๋๋ค.
pipenv run
๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ shebang์ด ์๋ ๊ฒฝ๋ก์ ์ค์น๋ ์คํฌ๋ฆฝํธ/์์ฉ ํ๋ก๊ทธ๋จ์ ์ํ ๊ฒ์ ๋๋ค.๊ทํ์ ๊ฒฝ์ฐ์๋ ๋น์ ์ด ์ฐพ๊ณ ์๋ ๊ฒ์ด
pipenv run python somescript.py
ํ๊ฑฐ๋ ์คํฌ๋ฆฝํธ ์๋จ์ shebang์ ์ถ๊ฐํ์ญ์์ค.