私はRaspberry Pi 3プロジェクトを進めています。私のプロジェクトに必要なものの1つはcythonです。
Virtualenv内でRaspberry Piを実行するにはpip install cython
Cythonを最初にコンパイルする必要があるため、完了するのに約40分かかります。この40分間、top
ccが実行されており、1つのコアを100%使用してコンパイルしようとしています。
SDカードを新しいRaspbianイメージにリセットする必要があるため、1日に数回これを行う必要があります。これは明らかに時間がかかり、進行速度が遅くなります。
pipがcythonをコンパイルした後、バイナリファイルはどこに保存されますか?仮想環境で?ファイルシステムの他の場所にありますか?
virtualenvに保存されている場合は、virtualenvフォルダ全体をアーカイブして新しいLinuxに復元して動作することを期待できますか?私はvirtualenvが移植可能ではないことを知っています(arg--relocatable
自体の問題があるように見えるargを使用しないでください)。しかし、私の場合、virtualenvを復元すると、virtualenvへのパスは変わりません。
ベストアンサー1
キャッシュディレクトリからホイールファイルをコピーするだけです。pip install pkgname
リリースされ、取り付け可能な互換ホイールがないことが確認されたら、pip
ソースdistでホイールをビルドし、将来の再インストール時に再利用できるようにキャッシュに保存します。ホイールファイルを見つけるには:
$ find $HOME/.cache/pip -type f -name Cython*.whl
ローカルファイルからインストールするには、ファイルをバックアップしてください。
$ pip install path/to/file.whl
ここからどこに行くのか:ローカルストレージ
事前に構築されたホイールコレクションがある場合、次のステップはインストールするローカルPyPIリポジトリを設定することです。最も簡単な方法は、ホイールをパッケージ名を付けたディレクトリに設定し、単純なHTTPサーバーを実行することです。
└── repodir
├── Cython
│ └── Cython-0.28.0-cp36-cp36m-linux_aarch64.whl
...
たとえば、サーバーを起動します。
$ python3 -m http.server -p 9000
これでリポジトリを次に渡すことができますpip
。
$ pip install Cython --extra-index-url=http://127.0.0.1:9000
pip.conf
または、毎回入力する必要がないようにリポジトリURLを維持しておくこともできます。
# pip.conf
[global]
extra-index-url=http://127.0.0.1:9000
もっと詳しく知りたい場合は、devpi
さまざまなパッケージ管理、Web UIなどを提供する優れたPyPIストレージサーバーがたくさんあります。