我有一个 python 包,我想将其安装在 docker 文件中。
pyproject.toml 看起来像:
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "bar"
dependencies = [
"pandas",
]
[project.optional-dependencies]
foo = [
"matplotlib",
]
Run Code Online (Sandbox Code Playgroud)
...和 Dockerfile:
# ...
WORKDIR /app
COPY . /app
RUN pip install /app
Run Code Online (Sandbox Code Playgroud)
这会在每个构建上安装依赖项(在本例中为pandas),我希望避免这种情况,以节省开发人员的时间,因为 pyproject.toml 很少被触及。
如何仅安装pandas(列出 pyproject.toml 的依赖项)而无需COPY .安装bar.
我想避免:
dynamic在pyproject.toml中使用关键字,因为我已经optional-dependencies并且希望将依赖项列表尽可能靠近(即同一文件)。就像是:
# ...
WORKDIR /app
COPY ./pyproject.toml /app/
RUN pip install --requirements-from /app/pyproject.toml # <-- HERE …Run Code Online (Sandbox Code Playgroud) Ubuntu 12.10
在尝试让flask+logging 在virtualenv 中工作时,我发现日志模块似乎没有从virtualenv 中导入(下面片段中的最后一行)。
(我认为当我的flask应用程序在virtualenv中运行时,这会产生不打印到日志文件的副作用,但如果这个问题没有帮助,我会单独询问)
为什么是这样??日志模块有什么特别之处吗?
# system python
# imports come from /usr/lib/python2.7 as expected
me@home:~/Desktop$ python
Python 2.7.3 (default, Apr 10 2013, 05:13:16)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re; print re
<module 're' from '/usr/lib/python2.7/re.pyc'> # OK
>>> import logging; print logging
<module 'logging' from '/usr/lib/python2.7/logging/__init__.pyc'> # OK
>>> exit()
# make virtual env
me@home:~/Desktop$ virtualenv --version
14.0.0
me@home:~/Desktop$ virtualenv testenv
New python executable in /home/me/Desktop/testenv/bin/python …Run Code Online (Sandbox Code Playgroud) 我想创建一个空白/空的 conda 环境,但新创建的环境似乎是从根目录或其他环境中获取包。我已经以 root 身份在系统上安装了这些软件包(例如bedtools,bwa等),也安装到其他 conda 环境中,但想要制作一个干净的软件包(为了重现性)。
这是预期的行为吗?我该如何调试这个?
我(试图)遵循这个答案:/sf/answers/26071/16638/3294994
$ conda env create -n test-env python
$ source activate
$ conda env export
name: test-env
channels:
- conda-forge
- biconda
- anaconda
- defaults
dependencies
...
python=3.6.2=0
bcftools=1.6=0
bedtools=2.26.0=0
bwa=0.7.15=1
...
picard=2.14=py36_0
...
Run Code Online (Sandbox Code Playgroud)
有关环境的一些信息如下:
$ conda info
Current conda install:
platform : linux-64
conda version : 4.3.27
conda is private : False
conda-env version : 4.3.27
conda-build version : not installed
python version …Run Code Online (Sandbox Code Playgroud)