2017-03-11 14 views
1

OpenSFMを構築する際に問題が発生しています。 setup.pyファイルを実行するとエラーが発生します。OpenSFM setup.pyファイルがDocker経由でビルドされた後にエラーを返す

まず、私はVirtualBoxでUbuntu 16.04を実行しています。私はDockerをインストールして実行しました。

docker pull freakthemighty/opensfm 

この画像は正常に構築されました。

さらに、hereからOpenSFMリポジトリを私のホームフォルダにクローニングしました。

次に、私はメインフォルダでこれを実行することによって構築することになっています:

python setup.py build 

これは、結果のエラー

[email protected]:~$ python setup.py build 
Configuring... 
Traceback (most recent call last): 
    File "setup.py", line 21, in <module> 
    subprocess.Popen(['cmake','../opensfm/src'], cwd='cmake_build').wait() 
    File "/usr/lib/python2.7/subprocess.py", line 711, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

Hereが問題のsetup.pyファイルです。

答えて

0

ドッカーファイルを自分で作成しました。私は最後のいくつかのステップを追加して、OpenSfMを自動的に構築させるようにしました。

私はリポジトリを最初にクローンし、欠落しているパッケージをいくつか追加してから、自動的にsetup.pyファイルをビルドします。

FROM ubuntu:16.04 

# Install apt-getable dependencies 
RUN apt-get update \ 
    && apt-get install -y \ 
     build-essential \ 
     cmake \ 
     git \ 
     libatlas-base-dev \ 
     libboost-python-dev \ 
     libeigen3-dev \ 
     libgoogle-glog-dev \ 
     libopencv-dev \ 
     libsuitesparse-dev \ 
     python-dev \ 
     python-numpy \ 
     python-opencv \ 
     python-pip \ 
     python-pyexiv2 \ 
     python-pyproj \ 
     python-scipy \ 
     python-yaml \ 
     wget \ 
    && apt-get clean \ 
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 


# Install Ceres from source 
RUN \ 
    mkdir -p /source && cd /source && \ 
    wget http://ceres-solver.org/ceres-solver-1.10.0.tar.gz && \ 
    tar xvzf ceres-solver-1.10.0.tar.gz && \ 
    cd /source/ceres-solver-1.10.0 && \ 
    mkdir -p build && cd build && \ 
    cmake .. -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF && \ 
    make install && \ 
    cd/&& \ 
    rm -rf /source/ceres-solver-1.10.0 && \ 
    rm -f /source/ceres-solver-1.10.0.tar.gz 


# Install opengv from source 
RUN \ 
    mkdir -p /source && cd /source && \ 
    git clone https://github.com/paulinus/opengv.git && \ 
    cd /source/opengv && \ 
    mkdir -p build && cd build && \ 
    cmake .. -DBUILD_TESTS=OFF -DBUILD_PYTHON=ON && \ 
    make install && \ 
    cd/&& \ 
    rm -rf /source/opengv 

#Clone the OpenSfM Repository 
RUN git clone https://github.com/mapillary/OpenSfM.git 

#Add additional functions that for some reason didn't come with the docker file 
Run apt-get update \ 
    && apt-get install python-networkx \ 
    python-exif \ 
    python-xmltodict 

#Automatically build OpenSfM so that its prebuilt in the docker 
Run cd OpenSfM && python setup.py build 
0

私が得た公式の応答:

こんにちは@walter、

またはドッキングウィンドウなし、opensfmを実行しているのは2つの方法があります。

ドッカーを使いたいなら、python setup.py buildを実行する必要はありません。代わりに、これはドッキングウィンドウコンテナ内部の再構成を作成することを

docker run -ti mapillary/opensfm /bin/sh -c "bin/run_all data/berlin" 

注意を使用して実行し

cd path/to/OpenSfM 
docker build -t mapillary/opensfm . 

を使用してドッキングウィンドウのイメージを構築します。ローカルフォルダをドッカーイメージ内のフォルダにマップするためには、ドッカーの知識が必要です。その結果、外部の結果にアクセスできるようになります。

その他のオプションは、ドッカーを使用しないことです。この場合、ubuntuマシンに依存関係をインストールする必要があります。https://github.com/mapillary/OpenSfM#installing-dependencies-on-ubuntuを参照してください。あなたはこのことができます

希望、 ポーを構築するのsetup.pyのpythonを実行できるようになることを行った後

関連する問題