電子書籍の厳選無料作品が豊富!

Windows10のシェルとかプロンプトのようなものでコマンドを入力しながらネットワークに接続することもあると思います。その場合、プロキシを通過させる一般的な方法はあるのでしょうか。
例えば、python機械学習のkerasをインストールしようと思ったら、pip install kerasとかを入力します。探しに行くのですがタイムアウトになります。プロキシの外にでないで待っていてタイムアウトになるという感じです。(ひょっとしたらレポジトリがダメとかかもしれません、だとしたら質問自体取り下げですが)。
プロキシを明示的に指定する方法は例えば pip install keras proxy=http://proxy.xxx.yyy.jp/8080 という風なのかなと思うのですが。
なお、Windows10のネットワーク設定ではプロキシを設定する項目はあります。あれが代表して設定しているからあとは自由に外に出るのかと思っていたのですが。あるいはコマンドpipに依存するのであって一般的な設定ってないのかなと思うのですが。
なお、Linuxの設定方法はようやくわかりました。そちらの方はシェルからコマンドを出せばプロキシの外に行きます。

A 回答 (6件)

> sudo apt...というのはスーパーユーザrootでの実行ということになるのでその辺の齟齬なのかなとも思うのですが。



は、
> .bashrcを実行しないような状態でコマンドを入れていたんでしょうね。
ということですね。sudo apt~~のときは、/root/.bashrc は読まれません。
実行している環境の環境変数も一部以外は引き継がれません。/etc/sudoersを編集して、引き継ぐ環境変数の設定箇所にhttps_proxyなどを追加すればいいかと思います。
    • good
    • 0

ANo.1&3です。


システムのプロパティでの設定はインターネット設定ではなく、環境変数です。
Windows10ならCocoaで「環境変数」と入れて検索するとコントロールパネルの環境変数の設定が見つかるかと思います。
コマンドラインで使う環境変数を設定できるので、そこでhttp_proxyとか諸々を設定しておきます。コマンドラインを立ち上げてsetコマンドでもできますが、コマンドラインからだと立ち上げるたびに実行する必要がありますし。
# たぶん何かのファイルを編集してもできると思うけど、詳しくは知らない
    • good
    • 0

> 私は環境変数の指定を.bashrcでやっていました。

でも全く通じず、
.bashrcを実行しないような状態でコマンドを入れていたんでしょうね。

> いろいろあってケースバイケースということで法則はない、
プログラムによって様々です。
Unix/Linuxの物をWindows用に移植する際に、Windows独自のシステム設定やレジストリなどを読み込むようにとまで手を入れることはまれだと思いますので、最初からWindows用に開発されたソフト以外は、Windowsの設定は見ないでしょうね。

> 結果オーライしかない、ということになるでしょうか。
ソフトを使うときは、そのソフトのマニュアルやリファレンスを見るというのが、普通のやり方です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。プロキシの設定はケースバイケースと考えていこうと思います。
話が逸れてしまいますが、.bashrcの方は、絶対の自信でやっていて、.bashrcでの設定(環境変数とかパスとか)はたっぷり恩恵を受けておりますし、.bashrcを変更したらsourceコマンドで再設定しているし、.bashrcの中ではexportなどもやっています。ただ、.bashrcはどんなにしっかり設定してもローカルのユーザの環境でしかないですね。sudo apt...というのはスーパーユーザrootでの実行ということになるのでその辺の齟齬なのかなとも思うのですが。/etc/environmentの設定はsudoを使わないとできませんので。

お礼日時:2019/09/28 11:28

ANo.1です。


pipのプロキシ設定は
pip --help
に記載の情報です。
自分でやったときは
pip install keras --proxy=http://proxy.xxx.yyy.jp:8080
の形式で通ったのですが、helpにはhttp://の部分は書いてないんですよね。
ユーザ認証があるときは
pip install keras --proxy=username:password@proxy.xxx.yyy.jp:8080
の形式らしいです。プロトコルが必要かどうかは……?
あと環境変数に設定するなら.bashrcはbashを使ってないと意味ないですよ。
Windowsのcmd.exeならシステムのプロパティから設定しておかないと。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。試行錯誤という面があるみたいですね。
bashrcですが、私は近年はbashしか使ったことがないです。tcsh, cshとか大昔にやりましたが、私はシェルの選択については意見がなく解説がネットに出ているものを便利に使いたいというだけです。そうなると自然とbashになることが多いのではないかと思っています。
cmd.exeではシステムのプロパティでプロキシを設定できますか。これはウィンドウズキー→設定→ネットワークとインターネット→プロキシですね。ここは抜かりなく設定しているつもりです。でも見に行ってくれてないみたいですね。でもここではhttp,https,ftpsの選択はないみたいですが。

お礼日時:2019/09/28 11:40

Unix/Linux系のコマンドは、おおむね環境変数 http_proxy https_proxy を参照します。


中には、これらの環境変数を参照せず、独自の設定ファイルに書いたり、独自のコマンドラインオプションで指定しないといけないコマンドもあります。

set http_proxy=http://proxy.xxx.yyy.jp/8080
set https_proxy=%http_proxy%

pipも環境変数を参照しますね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ubuntuに限定での経験ですが、私は環境変数の指定を.bashrcでやっていました。でも全く通じず、もうコマンドラインでプロキシは通らないとあきらめていたのですが、あるとき/etc/environmentにプロキシ情報を書いたらスイスイ動くようになってどういうこと???という状態です。理由は不明ですが、結果オーライとして使っています。今回の問題はWindowsのシェルの問題なのですが。環境変数を指定すればいいのか、ウィンドウズの”設定”の”ネットワークとインターネット”以下にあるプロキシ設定を指定すればいいのか全く判然としません。いろいろあってケースバイケースということで法則はない、結果オーライしかない、ということになるでしょうか。コンピュータなんてそんなもんかなと思いますけど。

お礼日時:2019/09/27 10:21

アプリケーションがWindows10のネットワーク設定を参照するように作られていれば、そのままでつながりますが、コマンドプロンプトから使うアプリケーションは多くの場合にそのような作りにはなっていません。


個別のアプリケーションに合わせて設定する必要があります。pipだと
pip install keras --proxy=proxy.xxx.yyy.jp:8080
ですかね。
    • good
    • 0
この回答へのお礼

回答ありがとうごうございます。コマンドラインでべったり指定するということですね。https, http, ftpsとかの指定はないでしょうか。環境変数はその辺のバリエーションがありますが。今回、ノートPCでの問題だったのでプロキシがない自宅に持ち帰りやってみたらスイスイ動作しました。こういう問題ってある程度の件数になって少しは顕在化するはずなのですが、みな黙っているのでしょうか。なお、デスクトップは持ち出せないので停滞したままですが、プロキシのベタ打ちの作戦を試してみます。

お礼日時:2019/09/27 10:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!