質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

875閲覧

さくらのレンタルサーバにインストールしたpython3を使用したい

inoshikacho123

総合スコア2

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2023/07/20 04:30

編集2023/07/20 05:08

実現したいこと

さくらのレンタルサーバにインストールしたpython3を使用したい
(最終的には、webサイトにseleniumを使用した結果を表示できるようにしたい)

前提

さくらのレンタルサーバを使用しています。
私が使用しているさくらサーバにはpython2が入っていました。
python3を使いたいので、コマンドプロンプトでさくらサーバにインストールしたところ、python3・pip(pip3)などのインストールは確認できました。
しかし、実際にwebサイトで呼び出すとpython2が読み込まれてしまいます。

test.py の記述と出力内容

・・記述・・ #! /home/my-folder/local/python/bin/python3 # -*- coding: utf-8 -*- print ("Content-Type: text/html\n") print ("<html><body>Hello world!</body></html>") import sys import pprint print('----------------------------') pprint.pprint(sys.path) print('----------------------------') print(sys.version) print('----------------------------') ・・表示・・ "state: 0" "Content-Type: text/html" "" "Hello world!" "----------------------------" "['/home/my-folder/www/my-test/python'," " '/usr/local/lib/python27.zip'," " '/usr/local/lib/python2.7'," " '/usr/local/lib/python2.7/plat-freebsd11'," " '/usr/local/lib/python2.7/lib-tk'," " '/usr/local/lib/python2.7/lib-old'," " '/usr/local/lib/python2.7/lib-dynload'," " '/usr/local/lib/python2.7/site-packages']" "----------------------------" "2.7.18 (default, Nov 13 2020, 12:17:42)" "[GCC 4.2.1 Compatible FreeBSD Clang 6.0.0 (tags/RELEASE_600/final 326565)]" "----------------------------"

.cshrc

~~省略~~ set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) setenv EDITOR vi setenv PAGER more setenv BLOCKSIZE K setenv PKG_DBDIR ~/db/pkg ~~省略~~ set path = ($path $HOME/local/python/bin) setenv PYTHON $HOME/local/python/lib

コマンドプロンプトで確認できた情報

% python Python 2.7.18 (default, Nov 13 2020, 12:17:42) [GCC 4.2.1 Compatible FreeBSD Clang 6.0.0 (tags/RELEASE_600/final 326565)] on freebsd11 Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> print(ssl.OPENSSL_VERSION) OpenSSL 1.0.2o-freebsd 27 Mar 2018 % python3 Python 3.6.5 (default, Jul 18 2023, 10:48:48) [GCC 7.5.0] on freebsd11 Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> print(ssl.OPENSSL_VERSION) OpenSSL 1.0.2o-freebsd 27 Mar 2018 % which python /usr/local/bin/python % which python3 /home/my-folder/local/python/bin/python3 % which pip /home/my-folder/local/python/bin/pip % which pip3 /home/my-folder/local/python/bin/pip3 % python -V Python 2.7.18 % python3 -V Python 3.6.5 % pip -V pip 21.3.1 from /home/my-folder/local/python/lib/python3.6/site-packages/pip (python 3.6) % pip3 -V pip 21.3.1 from /home/my-folder/local/python/lib/python3.6/site-packages/pip (python 3.6) % pip list Package Version -------------- ------- DateTime 4.9 pip 21.3.1 pytz 2023.3 selenium 3.141.0 setuptools 39.0.1 urllib3 1.26.16 zope.interface 5.5.2 % echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/my-folder/bin:/home/my-folder/local/python/bin % echo $SHELL /bin/csh % cat ~/.bashrc cat: /home/my-folder/.bashrc: No such file or directory % cat ~/.bash_profile export PATH="$HOME/local/python/bin:$PATH" export PATH="$HOME/local/python/bin:$PATH" export PATH="$HOME/local/python/bin:$PATH" export PATH="$HOME/usr/local/python/bin:$PATH"

ディレクトリの関係

home
__ my-folder
____ usr
____ local
______ python
________ bin
________ include
________ lib
________ share
____ www
______ my-test
________ index.php
________ python
__________ test.py

※/home/my-folder/local/python/binの中にpython3やpipをインストールしました。

さくらサーバのプラン

スタンダード

さくらサーバに元から入っていたpython2

バージョン 2.7.18
パス /usr/local/bin/python
/usr/local/bin/python2

参考サイト

https://bty.sakura.ne.jp/wp/archives/1470

試したこと

・「参考サイト」以外に、バージョンなども極力変更せず下記サイトを試しました。
https://bty.sakura.ne.jp/wp/archives/1297
https://netlog.jpn.org/r271-635/2018/12/sakura_python_pip_openssl.html
https://ricom-techno.com/65/
http://nabenavi.net/numpy_and_python3_to_sakura/
https://notemite.com/python/python3-on-sakura-rental/
https://zenn.dev/eito_blog/articles/bbc6b8510be3b2

・sudoコマンドの実行
sudo update-alternatives --install home/my-folder/local/python/bin/python3 python /home/my-folder/local/python/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python python $HOME/local/python/bin/python3 1
sudo update-alternatives --install /usr/local/bin/python python /home/my-folder/local/python/bin/python3.6 1

・test.pyのシバンの変更
#!/usr/local/bin/python
#!/usr/bin/env python3
#!/home/my-folder/local/python/bin/python3
#!/home/my-folder/local/python/bin/python

関係ないかもしれないけど気になっていること

・何度もインストール・アンインストールをしたので、消し切れていないファイルがあるかもしれません。
・Viの使い方がわからなかったので、.cshrcはFileZillaでダウンロード→最終行に追記→アップロードしました。

よろしくお願いいたします。

追記:my-test/index.php

phpの記述を載せていなかったので追記しました。

$command="python python/test.py 2>&1 "; exec($command,$output,$state); var_dump("state: ".$state); foreach($output as $val){ var_dump($val); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2023/07/20 04:51

test.pyコマンドをどのように実行していますか?もしかして python test.py ですか? であれば、 python3 test.py とするとどうなりますか?
inoshikacho123

2023/07/20 05:03

コメントありがとうございます。 python python/test.py を python3 python/test.py で実行してみましたが、結果は変わりませんでした… (phpの記述を追記しました)
inoshikacho123

2023/07/20 05:06

すみません! 焦って更新ミスってました! 下記のような出力に代わりました。 sh: python3: not found
melian

2023/07/20 05:31

PHP で、 $command="python python/test.py 2>&1 "; と書かれていますので、test.py の shbang で指定した /home/my-folder/local/python/bin/python3 が使われていません。 $command="/home/my-folder/local/python/bin/python3 python/test.py 2>&1 "; とする方がよいかもしれません。(python/test.py も絶対パスで指定するとよいでしょう) と
TakaiY

2023/07/20 05:32

python3 に(システムの)パスが通っていないからです。 ひとまず、python3 をフルパスで指定してみてください。 /home/my-folder/local/python/bin/python3 python/test.py かな
inoshikacho123

2023/07/20 06:17

melianさま、TakaiYさま コメントありがとうございます。 お二方がご指摘くださったようにパスを変更したところpython3が読み込まれるようになりました! "state: 1" "Content-Type: text/html" "" "Hello world!" "----------------------------" "['/home/my-folder/www/my-test/python'," " '/home/my-folder/local/python/lib/python36.zip'," " '/home/my-folder/local/python/lib/python3.6'," " '/home/my-folder/local/python/lib/python3.6/lib-dynload'," " '/home/my-folder/local/python/lib/python3.6/site-packages']" "----------------------------" "3.6.5 (default, Jul 18 2023, 10:48:48)" "[GCC 7.5.0]" "----------------------------"
katsuko

2023/07/20 11:31

解決しているので余計な話かもしれませんが、 https://help.sakura.ad.jp/notification/n-2589/ 最近のアップデートで、自分でインストールしなくてもpython3が使えるようになっています。 上のサイトを見ても、一通りメンテナンスが終わっているようなんですが、そのようなメールが届かなかったですか?
inoshikacho123

2023/07/21 00:14

コメントありがとうございます。 しばらく放置していたサーバだからかpython2.7のままでした。 問い合わせたらアップデートしてもらえるかもしれませんね…! とりあえず今回は勉強もかねて自分でやってみようと思います。
guest

回答1

0

ベストアンサー

コメントから転記

python3 に(システムの)パスが通っていないのが原因でしょう。

ひとまず、python3 をフルパスで指定してみてください。
/home/my-folder/local/python/bin/python3 python/test.py

また、今後のことを考えると、パスは通しておいたほうがいいと思います。
そうすれば、 python3 python/test.py で動くようになります。

投稿2023/07/20 06:45

TakaiY

総合スコア14394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inoshikacho123

2023/07/20 07:02

2週間ほど悩んでいたので本当に助かりました! ちなみに”パスを通す”というのは .cshrc の set path の記述を変えるということでしょうか? set path = ($path $HOME/local/python/bin) setenv PYTHON $HOME/local/python/lib
TakaiY

2023/07/20 08:33

通常ログイン時のことであれば、それでしょう。 PHPは触ったことがないのでわかりませんが、PHPでコマンドを実行する場合のパスも同じものを参照しているかわかりません。
inoshikacho123

2023/07/21 00:04

そうなんですね。 ありがとうございました! PHPのパスはまた調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問