1

この docker ファイルから構築された Docker イメージがあります。 Docker イメージは、Ubuntu 14.04 である Vagrant VM を使用しており、すべて OSX 10.11.6 で実行しています。Microsoft SQL Server は aws-ec2 インスタンスにあります。私のプログラムは Python であるため、データベースに接続するために 2 つの Python ライブラリを試しましたが、それぞれが同じように失敗します。これまでに起こったことの概要は次のとおりです。

  • apk add freetds-devMicrosoft SQL データベースとやり取りするには FreeTDS をインストールする必要があるためです。
  • pip install pymssqlどちらも同じエラー メッセージでpip install pyobdc失敗します。

{ bash-4.3# pip install pymssql

Collecting pymssql
  Using cached pymssql-2.1.3.tar.gz
    Complete output from command python setup.py egg_info:
    setup.py: platform.system() => 'Linux'
        Download error on     https://pypi.python.org/simple/setuptools_git/:         [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
    Download error on https://pypi.python.org/simple/setuptools-git/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
    Couldn't find index page for 'setuptools_git' (maybe misspelled?)
    Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
    No local packages or download links found for setuptools-git
    setup.py: platform.architecture() => ('64bit', '')
    setup.py: platform.linux_distribution() => ('', '', '')
    setup.py: platform.libc_ver() => ('', '')
    setup.py: Not using bundled FreeTDS
    setup.py: include_dirs = []
    setup.py: library_dirs = ['/usr/local/lib']
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-macbkK/pymssql/setup.py", line 477, in <module>
        ext_modules = ext_modules(),
      File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 268, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 313, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 846, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1091, in best_match
        return self.obtain(req, installer)
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1103, in obtain
        return installer(requirement)
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 380, in fetch_build_egg
        return cmd.easy_install(req)
      File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 633, in easy_install
        raise DistutilsError(msg)
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('setuptools-git')

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-macbkK/pymssql/

( と同じエラーpyodbcです ) インストールしようとするとsetuptools-git(エラー メッセージのように)、gccコンパイル エラーが発生します。

を試すpip install...ことに加えて、SQLAlchemy ライブラリを Alpine Linux リポジトリから直接ダウンロードしましたがapk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community/ py-sqlalchemy、インストールがまだ失敗するか、Python ライブラリがまだ失敗します。

Alpine Linux と Microsoft SQL Server に関するドキュメントはほとんど見つかりませんでした。そのため、互換性がないという記述を見落としていないかどうか疑問に思っています。誰もこれをやろうとしたことがありますか?Python 経由での接続が提案されていない場合、シェル コマンド経由で接続することを検討しています。このためのベスト プラクティスを提案できる人はいますか?

ありがとうございました!

4

3 に答える 3

1

Microsoft は、Alpine での ODBC ドライバーのインストールのサポートを正式に開始しました。

于 2020-04-23T05:51:48.573 に答える
0

私からの関連質問はこちら

SQL サーバーに接続するためにmsodbcsql17ドライバーをインストールしたことを思い出します。しかし、Docker のベース イメージとして Ubuntu 18.04 を使用し、SQL サーバーは Azure 上にありました。さらに、インストールする必要があったためunixodbc unixodbc-dev gcc g++ gfortran、それが役立つかどうかはわかりません。

しかし、アルパインをベースイメージとして試したところ、これは不可能でした。

github で関連する問題を見つけましたが、それは msphpsql リポジトリの下にあるため、アルパインの一般的なドライバーに適用されるかどうかはわかりません。MSはまだサポートしていないと言っています。

MS の公式インストール ページには、Debian、RedHat、SUSE、Ubuntu のインストール手順のみが記載されています。

于 2019-08-30T09:36:15.687 に答える