[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 メーリングリストの案内