我在Docker中安装pipenv:
RUN pip install pipenv RUN cd /my/app/path/ && pipenv install RUN cd /my/app/path/ && pipenv shell
我收到错误:
Traceback (most recent call last): File "/usr/local/bin/pipenv", line 11, in <module> sys.exit(cli()) File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 722, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 697, in main rv = self.invoke(ctx) File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 1066, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 895, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 535, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/pipenv/cli.py", line 2057, in shell do_shell(three=three, python=python, fancy=fancy, shell_args=shell_args) File "/usr/local/lib/python2.7/dist-packages/pipenv/cli.py", line 1952, in do_shell shell = os.path.abspath(PIPENV_SHELL) File "/usr/lib/python2.7/posixpath.py", line 360, in abspath if not isabs(path): File "/usr/lib/python2.7/posixpath.py", line 54, in isabs return s.startswith('/') AttributeError: 'NoneType' object has no attribute 'startswith'
如果我跑步
RUN cd /my/app/path/ && pipenv install --system
相反,即时通讯收到另一个错误:
build 30-Sep-2017 16:50:45 Step 5/9 : RUN cd /my/app/path && pipenv install --system build 30-Sep-2017 16:50:45 ---> Running in cffd31633074 build 30-Sep-2017 16:50:46 [91mPipfile.lock not found, creating… build 30-Sep-2017 16:50:46 [0m[91mLocking [dev-packages] dependencies… build 30-Sep-2017 16:50:46 [0m[91mLocking [packages] dependencies… build 30-Sep-2017 16:50:49 [0m[91mCRITICAL:pip.utils:Error [Errno 2] No such file or directory while executing command python setup.py egg_info build 30-Sep-2017 16:50:49 [0m[91mTraceback (most recent call last): build 30-Sep-2017 16:50:49 File "/usr/local/bin/pipenv", line 11, in <module> build 30-Sep-2017 16:50:49 sys.exit(cli()) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 722, in __call__ build 30-Sep-2017 16:50:49 [0m[91m return self.main(*args, **kwargs) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 697, in main build 30-Sep-2017 16:50:49 [0m[91m rv = self.invoke(ctx) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 1066, in invoke build 30-Sep-2017 16:50:49 [0m[91m return _process_result(sub_ctx.command.invoke(sub_ctx)) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 895, in invoke build 30-Sep-2017 16:50:49 [0m[91m return ctx.invoke(self.callback, **ctx.params) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 535, in invoke build 30-Sep-2017 16:50:49 return callback(*args, **kwargs) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/cli.py", line 1782, in install build 30-Sep-2017 16:50:49 [0m[91m do_init(dev=dev, allow_global=system, ignore_pipfile=ignore_pipfile, system=system, skip_lock=skip_lock, verbose=verbose, concurrent=concurrent, deploy=deploy) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/cli.py", line 1290, in do_init build 30-Sep-2017 16:50:49 [0m[91m do_lock(system=system) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/cli.py", line 1080, in do_lock build 30-Sep-2017 16:50:49 [0m[91m pre=pre build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/utils.py", line 421, in resolve_deps build 30-Sep-2017 16:50:49 [0m[91m resolved_tree.update(resolver.resolve()) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/piptools/resolver.py", line 101, in resolve build 30-Sep-2017 16:50:49 [0m[91m has_changed, best_matches = self._resolve_one_round() build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/piptools/resolver.py", line 199, in _resolve_one_round build 30-Sep-2017 16:50:49 [0m[91m for dep in self._iter_dependencies(best_match): build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/piptools/resolver.py", line 293, in _iter_dependencies build 30-Sep-2017 16:50:49 dependencies = self.repository.get_dependencies(ireq) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/piptools/repositories/pypi.py", line 171, in get_dependencies build 30-Sep-2017 16:50:49 result = reqset._prepare_file(self.finder, ireq) build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/pip/req/req_set.py", line 639, in _prepare_file build 30-Sep-2017 16:50:49 [0m[91m abstract_dist.prep_for_dist() build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/pip/req/req_set.py", line 134, in prep_for_dist build 30-Sep-2017 16:50:49 [0m[91m self.req_to_install.run_egg_info() build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/pip/req/req_install.py", line 438, in run_egg_info build 30-Sep-2017 16:50:49 [0m[91m command_desc='python setup.py egg_info') build 30-Sep-2017 16:50:49 File "/usr/local/lib/python2.7/dist-packages/pipenv/patched/pip/utils/__init__.py", line 667, in call_subprocess build 30-Sep-2017 16:50:49 [0m[91m cwd=cwd, env=env) build 30-Sep-2017 16:50:49 File "/usr/lib/python2.7/subprocess.py", line 711, in __init__ build 30-Sep-2017 16:50:49 [0m[91m errread, errwrite) build 30-Sep-2017 16:50:49 File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child build 30-Sep-2017 16:50:49 [0m[91m raise child_exception build 30-Sep-2017 16:50:49 OSError: [Errno 2] No such file or directory error 30-Sep-2017 16:50:49 The command '/bin/sh -c cd /opt/supercrunch/function-service/lib && pipenv install --system' returned a non-zero code: 1 build 30-Sep-2017 16:50:49 [0mSending build context to Docker daemon 40.96 kB
但是当我改为执行以下操作时:
RUN pip install pipenv RUN cd /my/app/path && pipenv install RUN cd /my/app/path && pipenv install --system
这是工作…
于是两个问题:第一:为什么pipenv shell给我这个错误,第二:为什么我必须做pipenv install之前pipenv install --system得到它的工作?
pipenv shell
pipenv install
pipenv install --system
我想使用pipenv创建具有不同python版本和不同依赖版本的虚拟环境。
考虑到您的问题,据我所知,最简单的方法是更新到的最新版本pipenv。它仍在开发中,因此很快就解决了问题。
pipenv
我们在生产中使用pipenvwith docker。我们真的很喜欢。有几件事要牢记:
docker
--system
virtualenv
--deploy
Pipfile.lock
--ignore-pipfile
检查官方文档,以确保此信息是最新的。
总而言之:
pipenv install --system --deploy --ignore-pipfile
还有一件事。如果您Dockerfile在开发和生产中都使用相同的--dev标记,那么最好仅在开发环境中使用flag。
Dockerfile
--dev
另外,请查看我们的django项目模板以查看完整的示例:wemake-django- template
django