システムと組織の要件のためにインストールできないコンピュータにPythonアプリケーションをデプロイしたいので gcc
(通常は必須)、別々のインストールファイルを作成する必要があります。pymssql
FreeTDS
gcc gcc-c++
インストール前を使用してその要件を削除しましたが、FreeTDS
まだ要件を満たしていません。
export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1
pymssql
gcc
pymssql
または、依存しないシステムに展開してインストールできるようにプリコンパイルする方法はありますか?FreeTDS
gcc
答え1
gcc
.
別のマシンでホストされているまったく同じCentOSバージョン(VirtualBoxなど)でVMを設定します。その仮想マシンに必要なものをインストールしてgcc
からインストールします。virtualenv
(私はソースでこれを行うことをお勧めします。パッケージマネージャを使用してインストールできるのは通常最新バージョンではありません。)
仮想マシンで、次をvirtualenv /opt/util/pymssql
使用して仮想環境を作成します。
環境( source /opt/util/pymssql/bin/activate
)を有効にして、それを使用してpip
必要なすべてのライブラリをインストールします。
すべてがインストールされ実行されたら、「実際の」CentOSシステムにそのサブディレクトリをtar
配置します。/opt/util/pymssql
同じ場所に。これにより、「実際の」コンピュータでコンパイラなしで動作するコードが提供されます。
仮想環境の実際のディレクトリ(例/opt/util/pymssql
)は重要ではありませんが、「実際の」マシンで使用するパスを使用する必要があり、仮想環境の一部のファイルにはハードコーディングされたパスがあります。
答え2
正しいアプローチは、独自のCentOSパッケージを構築することです。 pymssqlパッケージがあったようですが、管理者不足のために廃止されましたが、Fedoraのgitリポジトリにある仕様ファイルを開始点として使用できます。
http://pkgs.fedoraproject.org/cgit/rpms/pymssql.git/tree/pymssql.spec
答え3
Anthonが提案したように、同じOSでVMをセットアップし、必要なツール(gcc)をインストールしますが、virtualenv(ハッキング)を作成して圧縮するのではなく、バイナリホイールをビルドし、そのホイールをターゲットシステムにインストールします。
関連:
Cライブラリを構築するためにPythonパッケージを使用したくない場合はどうすればよいですか?
Pythonプロジェクトのホイール/卵とすべての依存関係を構築します。