是否可以将 python 2.7 与 julia 一起使用,而 anaconda 预装了 python 3.4?

Is it possible to use python 2.7 with julia while anaconda is preinstalled with python 3.4?

我安装了 julia,并使用 PyCall 在 julia 中使用一些不错的 python 包,如 matplotlib。我已经用 anaconda 安装了所有 python 东西并使用了 python 3.4。我可以从 anaconda 中的环境切换到使用 python 2.7.

问题是我想在 julia 中将 openCV 作为 python 包导入,但它只能在 python 2.7 上运行。所以我想知道是否可以在 julia trough anaconda 中使用 python 2.7,而 python 3.4 在 anaconda 的主要安装中。

一个可行的选择是重新安装版本为 2.7 的 anaconda,但我不希望这样。

提前致谢, 弗兰克

当前的 Anaconda 安装

Python3

上的 OpenCV3

The thing is that I would like to import openCV as a python package in julia but it only runs with python 2.7.

您是否尝试过使用 Anaconda Python 版本 3.x 安装来安装 OpenCV3?

添加另一个Python 2.7 环境

您还可以创建新的 Anaconda Python 环境,安装 Python 2.7 使用当前的 Anaconda 安装 conda create:

conda create -n py27 python=2.7 anaconda

假设您使用的是完整的 Anaconda 发行版,我知道这将安装一个 full Anaconda Python 2.7 环境(参见下面的 miniconda),但它不会弄乱你之前的 Anaconda Python 3 env.

Conda.jl Julia 包

您可以使用 Conda.jl 来管理 Julia 二进制依赖项:

This package allows one to use conda as a binary provider for Julia. While other binary providers like Hombrew.jl, AptGet.jl or WinRPM.jl are platform-specific, Conda.jl is a cross-platform alternative. It can also be used without administrator rights, in contrast to the current Linux-based providers.

conda is a package manager which started as the binary package manager for the Anaconda Python distribution, but it also provides arbitrary packages. Instead of the full Anaconda distribution, Conda.jl uses the miniconda Python environment, which only includes conda and its dependencies.

You can install it by running Pkg.add("Conda") at the Julia prompt.

安装并加载 Conda.jl:

julia> # Pkg.add("Conda")

julia> using Conda

搜索包:

julia> Conda.search("opencv")
1-element Array{AbstractString,1}:
 "opencv"

安装包:

julia> Conda.add("opencv")
Fetching package metadata: ....
Solving package specifications: ....................
Package plan for installation in environment /home/ismaelvc/.julia/v0.4/Conda/deps/usr:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    jpeg-8d                    |                0         699 KB
    wheel-0.29.0               |           py27_0          81 KB
    opencv-2.4.10              |      np110py27_1         9.2 MB
    ------------------------------------------------------------
                                           Total:        10.0 MB

The following NEW packages will be INSTALLED:

    jpeg:   8d-0              
    opencv: 2.4.10-np110py27_1

The following packages will be UPDATED:

    wheel:  0.26.0-py27_1 --> 0.29.0-py27_0

Fetching packages ...
jpeg-8d-0.tar. 100% |##########| Time: 0:00:01 652.02 kB/s
wheel-0.29.0-p 100% |##########| Time: 0:00:00 336.94 kB/s
opencv-2.4.10- 100% |##########| Time: 0:00:10 962.48 kB/s
Extracting packages ...
[      COMPLETE      ]|##########| 100%
Unlinking packages ...
[      COMPLETE      ]|##########| 100%
Linking packages ...
[      COMPLETE      ]|##########| 100%

Total: 10.0 MB

检查它是否有效:

shell> .julia/v0.4/Conda/deps/usr/bin/python
Python 2.7.11 |Continuum Analytics, Inc.| (default, Dec  6 2015, 18:08:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import cv2
>>> cv2.__version__
'2.4.10'
>>>

在 Julia 中通过 PyCall:

julia> using PyCall    # Pkg.add("PyCall")

julia> @pyimport cv2

julia> @pyimport sys

julia> sys.version |> println
2.7.11 |Continuum Analytics, Inc.| (default, Dec  6 2015, 18:08:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

julia> import Conda

julia> Conda.PYTHONDIR
"/home/ismaelvc/.julia/v0.4/Conda/deps/usr/bin"

为 PyCallpython 指定版本

迷你康达

或者直接用miniconda换Python 2.7:

Conda.jl 默认安装 Python 版本 2。7.x miniconda(安装 ~/.julia/v0.x/Conda 中的所有内容)。

在Linux中:

通常很容易只安装你想要的东西,而不必使用 Anaconda(我假设你使用 Mac 或 PC,但对其他人仍然有用),示例使用 ArchLinux 包管理器 pacman,它与其他 Linux 发行版包管理器类似:yumzipperapt-get, 等:

shell> sudo pacman -S opencv
warning: opencv-2.4.12.2-2 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Package (1)   Old Version  New Version  Net Change  Download Size

extra/opencv  2.4.12.2-2   2.4.12.2-2     0.00 MiB       7.10 MiB

Total Download Size:    7.10 MiB
Total Installed Size:  38.86 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n] n

shell> python2
Python 2.7.11 (default, Dec  6 2015, 15:43:46)
[GCC 5.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'2.4.12.2'
>>>