ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ pipenv run directory / somescript.py ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ±ΠΎΡ pipenv, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΈΡΠ΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ / somescript.py Π² PATH
$ python -V
python 3.6$ pipenv --version
masterpipenv Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΊΡΠΈΠΏΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ
Π¨Π°Π³ 26/29: ΠΠΠΠ£Π‘Π ls $ PROJECT_PATH | grep setup.py
---> Π Π°Π±ΠΎΡΠ°Π΅Ρ Π² 7811236ec5ee
setup.py
Π‘Π½ΡΡΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° 7811236ec5ee
---> ba280fab02c3
Π¨Π°Π³ 27/29: ΠΠΠΠ£Π‘Π pipenv run $ PROJECT_PATH / setup.py develop
---> ΠΠ°ΠΏΡΡΠΊ Π² b48df28fbe12
ΠΡΠΈΠ±ΠΊΠ°: ΠΊΠΎΠΌΠ°Π½Π΄Π° /opt/project/setup.py Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² PATH.
ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· dockerfile:
RUN ls $ PROJECT_PATH | grep setup.py
RUN pipenv run $ PROJECT_PATH / setup.py develop
Π ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ 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, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ pipenv Π²Π½ΡΡΡΠΈ Docker ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² stacktrace. pipenv run
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΠΏΠΎ ΠΏΡΡΠΈ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ shebang, ΠΊΠ°ΠΊ ΠΈΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π²Ρ ΠΈΡΠ΅ΡΠ΅ pipenv run python somescript.py
ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ shebang Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@jacekjab, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ pipenv Π²Π½ΡΡΡΠΈ Docker ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² stacktrace.
pipenv run
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΠΎ ΠΏΡΡΠΈ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ shebang, ΠΊΠ°ΠΊ ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.Π Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π²Ρ ΠΈΡΠ΅ΡΠ΅
pipenv run python somescript.py
ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ shebang Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.