[FreeBSD-users-jp 96394] Re: numpy, py-opencv と python3
Hiroo Ono (小野寛生)
hiroo.ono+freebsd @ gmail.com
2019年 4月 13日 (土) 07:57:23 UTC
小野寛生です。
numpy はうまくいったんですが、graphics/py-opencv の方は
Ignoring graphics/py-opencv: Unknown flavor 'py37', possible flavors: py27.
というエラーが出てしまいました。
ports の Mk/Uses/python.mk を見てみたらコメントに
# concurrent - Indicates that the port can be installed for
# different python versions at the same time. The port
# is supposed to use a unique prefix for certain
# directories using USES=uniquefiles:dirs (see the
# uniquefiles.mk Uses for details about the
# directories), if set to yes. Binaries receive an
# additional suffix, based on ${PYTHON_VER}.
# flavors - Force creation of flavors for Python 2 and 3 default
# versions, where applicable.
# allflavors - Generate flavors for all possible versions and not
# simply the default ones. Only to be used for py-*
# ports that are part of the Python distribution, but
# kept as separate ports.
とあって、ports の Makefile で、flavors だけの指定だと python の default version に対するものしか作られず、
allflavors が指定されているとすべてのバージョンの python に対するものが作成可能ですが、
concurrent が指定されていないと同時にはインストールできないということのようです。
ということで、math/py-numpy は USE_PYTHON= allflavors concurrent が指定されていますが、
graphics/py-opencv は flavors しか指定されていないという違いがありました。
現状の py-opencv は SITELIBDIR の下のモジュールだけなので、numpy のように、allflavors
concurrent を指定してもよさそうなものですが。
2019年4月10日(水) 12:30 Hiroo Ono (小野寛生) <hiroo.ono+freebsd @ gmail.com>:
>
> 小野寛生です。
>
> 2019年4月10日(水) 12:01 KIRIYAMA Kazuhiko <kiri @ kx.openedu.org>:
> >
> > 桐山です
>
> > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226634#c8
> >
> > この記事では Python27 と Python36 は共存できないと書いていま
> > すが,py36-setuptools は graphics/mesa-libs で使うので,結局
> > 今の ports ツリーではまず最初に
>
> いえ、この記事が言っているのは、
> 1) DEFAULT_VERSIONS=python=2.7 でビルドされた py27-setuptools と
> DEFAULT_VERSIONS=python=3.6 でビルドされた py36-setuptools は共存できない。
> 2) DEFAULT_VERSIONS=python=2.7 でビルドされた py27-setuptools と
> DEFAULT_VERSIONS=python=2.7 でビルドされた py36-setuptools は共存できる。
> 3) DEFAULT_VERSIONS=python=3.6 でビルドされた py27-setuptools と
> DEFAULT_VERSIONS=python=3.6 でビルドされた py36-setuptools も共存できる。
>
> ということです。
> 具体的には、devel/py-setuptools はデフォルトのバージョンと同じ FLAVOR
> を作成する場合に、/usr/local/bin/easy_install という
> バージョン番号のつかないファイルを生成するのですが、(1) では両方のパッケージがこのファイルを持つので衝突します。
> (2) と (3) の場合は異なる FLAVOR のパッケージの中で 1 つしかこのファイルを持たないので衝突しません。
> つまるところ、ports&packages のシステムでは、DEFAULT_VERSIONS の設定が異なるパッケージが混ざることは
> 想定していないし、サポートするつもりもない。基本的には DEFAULT_VERSIONS を変更したらパッケージを全部
> 作り直してねということなんだと思います。
>
>
> > # make -C $PORTSDIR/devel/py-setuptools FLAVOR=py36 install
> > # make -C $PORTSDIR/graphics/mesa-libs PYTHON_VERSION=python2.7 install
> >
> > しとかないとうまくいかないと思います.
freebsd-users-jp メーリングリストの案内