Virtualenvを使用して、pyodbcをインストールしようとしています。私が見つけることができるすべてのリソースは、これは非常に簡単であると主張しています。 MySQLなどのすべての基本的なインストールが完了したら、次を実行します。
pip install pyodbc
ただし、非常に奇妙なエラーが表示されます。欠落しているライブラリとは何の関係もありません(私が知る限り)。この種のエラーを長期間グーグルで調べた後、構築的なものはまったく見つかりません。
(local-dev)espears@espears-w ~ $ pip install pyodbc
Downloading/unpacking pyodbc
Could not find any downloads that satisfy the requirement pyodbc
Some externally hosted files were ignored (use --allow-external pyodbc to allow).
Cleaning up...
No distributions at all found for pyodbc
Storing debug log for failure in /home/espears/.pip/pip.log
そこで、「allow-external」オプションを試してみましたが、役に立ちません。
(local-dev)espears@espears-w ~ $ pip install --allow-external pyodbc
You must give at least one requirement to install (see "pip help install")
しかし、ヘルプドキュメントでは、このオプションを正しく使用しているように見えます。実行中のpip help install
の出力から:
Package Index Options:
...
--allow-external <package> Allow the installation of externally hosted files
PIPログファイルの結果は次のとおりです。
(local-dev)espears@espears-w ~ $ cat /home/espears/.pip/pip.log
Downloading/unpacking pyodbc
Getting page https://pypi.python.org/simple/pyodbc/
URLs to search for versions for pyodbc:
* https://pypi.python.org/simple/pyodbc/
Analyzing links from page https://pypi.python.org/simple/pyodbc/
Skipping link http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/); not a file
Skipping link http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/); not a file
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed.
Could not find any downloads that satisfy the requirement pyodbc
Some externally hosted files were ignored (use --allow-external pyodbc to allow).
Cleaning up...
Removing temporary dir /home/espears/.virtualenvs/local-dev/build...
No distributions at all found for pyodbc
Exception information:
Traceback (most recent call last):
File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/commands/install.py", line 270, in run
requirement_set.prepare_files(Finder, force_root_Egg_info=self.bundle, bundle=self.bundle)
File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/req.py", line 1157, in prepare_files
url = Finder.find_requirement(req_to_install, upgrade=self.upgrade)
File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/index.py", line 285, in find_requirement
raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for pyodbc
--allow-external
オプションを取得するだけで動作する場合、pyodbcを取得するための共通の場所が明確に見えるため、動作するように見えます。
しかし、pyodbcのインストールに関する実質的にすべての参照が外部リンクを有効にするために邪魔にならなくてもよいのに、なぜこれが必要なのか困惑しています。また、今日は1日多くのパッケージをインストールしていますが、問題はほとんどなく、他の場合にこのallow-external
の必要性に遭遇することはありません。
Ubuntu 12.04では、Python 2.7.3でpipバージョン1.5を使用しています。
PyPIディレクトリ構造が正しい場合、pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc
を実行できます。
この回答を最初に投稿したときのpip.log出力に基づいて、パッケージのWebサイトのディレクトリ構造が壊れていたと思います。 pip install https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pyodbc/pyodbc-3.0.7.Zip
のようなパッケージのURLを指定することにより、このタイプの問題をいつでも回避できます。異なるバージョンのリンクは here で説明されています。
Pyodbcもインストールしてみて、同じ壁にぶつかりました。あなたと私が共にぶつかった問題は、--allow-externalが次の引数も消費することです。したがって、実際に書く必要があります:
Sudo pip install --allow-external pyodbc pyodbc
その後、未検証のソースに関する別のエラーが発生したため、実際に機能したコマンドは次のとおりです。
Sudo pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc
これが完了すると、インストールされたファイルの権限により、通常のユーザーはpyodbcにアクセスできなくなります。そこで、インストールされたすべてのパッケージのアクセス許可を手動で調整しました(pyodbcに必要なファイルだけを見つけるよりも簡単だと思われました)。
cd /usr/local/lib/python2.7/
chmod -R o=g dist-packages
EMSの提案に従って、私はPipバグ追跡システムに問題を追加しました。
FWIW、ms windowsでは、私のためのバイナリのインストール(windows install)以外は、windows/cygwinハイブリッド環境では面倒でした。
pypyodbc を使用することを選択しました。これは純粋なpythonであり、Windows/Linuxの開発に変更を必要としませんでした。 ほぼpyodbcのドロップイン置換 コンパイルは不要で、もちろんpip install pypyodbc
で簡単にインストールできます。
easy_installを使用して、virualenvのウィンドウにpyodbcをインストールする「簡単な」方法があります。
easy_install pyodbc-3.0.7.win32-py2.7.exe
pywin32の場合と同じように、 ホスト環境のsite-packagesフォルダーを含めずにvirtualenvでpywin32を使用するにはどうすればよいですか?
インストール時に成功しました
Sudo pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc
ただし、pyodbcを実際にコンパイルするにはunixodbc-dev
パッケージも必要でした。
--allow-unverified
と--allow-external
は両方とも、パッケージ名を引数として取ります。
From pip help install:
--allow-external <package> Allow the installation of a package even if it
is externally hosted
--allow-unverified <package> Allow the installation of a package even if it
is hosted in an insecure and unverifiable way
--allow-external
には引数(許可する外部の名前)が必要です。--allow-unverified
についても同様です。pip install --allow-external pyodbc
を使用すると、pyodbc
と呼ばれる外部を許可しますpip install --allow-external pyodbc pydodbc
は必要なもので、最初のpyodbc
は外部を許可し、2番目は実際にpipにインストールするパッケージを指示します。
Pip help installから:--allow-external外部でホストされている場合でもパッケージのインストールを許可する--allow-unverified安全で検証不可能な方法でホストされている場合でもパッケージのインストールを許可する
だからあなたの使用法は
pip install <pkg> --allow-unverified <pkg> --allow-external <pkg>
または少しわかりにくい:
pip install --allow-unverified <pkg> --allow-external <pkg> <pkg>
DO NOT許可するだけで許可しない場合は--allow-all-external
を使用します[〜#〜] all [〜#〜]。これは、セキュリティチェックを行うという目的全体を無効にします。