【问题标题】:Is it possible to use python 2.7 with julia while anaconda is preinstalled with python 3.4?当 anaconda 预装了 python 3.4 时,是否可以将 python 2.7 与 julia 一起使用?
【发布时间】:2016-02-09 09:34:55
【问题描述】:

我安装了 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,但我不希望这样。

提前致谢, 弗兰克

【问题讨论】:

  • 对于那些因为@pyimport opencv 无法使用 PyCall 工作而来到这里的人,“作为一种解决方法,您可以执行 cv = pyimport("cv2") 并使用 cv[:富]"

标签: python-2.7 python-3.x opencv julia anaconda


【解决方案1】:

当前 Anaconda 安装

Python3 上的 OpenCV3

问题是我想在 julia 中将 openCV 作为 python 包导入,但它只能与 python 2.7 一起运行。

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

添加另一个 Python 2.7 环境

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

conda create -n py27 python=2.7 anaconda

假设您使用的是完整的 Anaconda 发行版,我知道这将安装 完整 Anaconda Python 2.7 环境(请参阅下面的 miniconda),但它不会弄乱您以前的 Anaconda Python 3环境。

Conda.jl Julia 包

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

此软件包允许使用conda 作为 Julia 的二进制提供程序。虽然Hombrew.jlAptGet.jlWinRPM.jl 等其他二进制提供程序是特定于平台的,但Conda.jl 是跨平台的替代方案。与当前基于 Linux 的提供程序不同,它也可以在没有管理员权限的情况下使用。

conda 是一个包管理器,最初是作为 Anaconda Python 发行版的二进制包管理器,但它也提供任意包。 Conda.jl 没有使用完整的 Anaconda 发行版,而是使用 miniconda Python 环境,该环境仅包含 conda 及其依赖项。

您可以通过在 Julia 提示符下运行 Pkg.add("Conda") 来安装它。

安装并加载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%

总计: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"

为 PyCall 指定 python 版本

迷你康达

或者对于 Python 2.7 直接使用miniconda

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

在 Linux 中:

通常很容易只安装你想要的东西,而不必使用 Anaconda(我假设你使用 Mac 或 PC,但对其他人仍然有用),示例使用 ArchLinux 包manager 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'
>>>

【讨论】:

  • 确实很小,但是conda也可以切换python版本吗?顺便说一句,我想知道您的安装是否可以在 julia 中导入 opencv?这样做时我遇到了一些麻烦。其他 python 包确实有效,但 @pyimport cv2 给出了错误,所以我正在考虑你的构建。我实际上是在用 julia 测试图像处理的可能性。
  • @F.Wessels 是的,我可以做到@pyimport cv2,我已经更新了答案,您也可以使用conda create 创建可能安装了不同python 版本的新环境:@987654326 @
  • Conda.jl 被解压到 /opt/julia/julia-1.1.0/share/julia/stdlib/v1.1/Conda。安装 Miniconda3-4.6.14-Linux-x86_64.sh 的正确路径是什么?无论是 /opt/julia/julia-1.1.0/share/julia/stdlib/v1.1/Conda/deps/usr/bin/conda 还是其他地方?
  • @AVA 你是如何安装Conda.jl 的?你在 Julia 包提示符下做了add Conda 吗?
  • 刚刚解压了 Conda.jl。
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 2015-08-24
  • 2018-07-20
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多