Pythonを勉強中で、初歩的ですが教えてください。
今後の目標としてPythonを使用した社内ツール開発をし、社内の人にもファイルを共有→社内ユーザーがファイルをダブルクリックしたら実行できるようなPythonでの効率化ツール開発したいと考えています。
一点懸念点として、Pythonのライブラリのバージョンが、結構アップデートされたりすると聞きました。
それにより開発したPythonコードでアップデート前のコードを使用していて、実行時エラーが発生するなったする可能性はあるのでしょうか。
それを阻止する方法はありますか?
外部環境による環境に変化によるコード修正はできるだけ阻止したいと考えており、知見がある方教えてください。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Windows上で動かすツールを考えているなら、Webアプリケーションとして動かすものを考えた方がいいです。
データ管理もファイルではなく、データベースを使って簡単にデータを削除できないような作りを考えた方がいいです。
Windowsアプリケーションという考えなら、PythonではなくC++やC#での開発を検討しましょう。
No.2
- 回答日時:
>開発したPythonコードでアップデート前のコードを使用していて、
>実行時エラーが発生するなったする可能性はあるのでしょうか。
ありえますね。それは C で書いてライブラリが更新された場合も
同じですが・・・
pythonは複数のメジャーバージョンを同じPCに複数インストール
することが可能です。アプリは、そこにパッケージとして
インストールするとライブラリのバージョンを
個別に細かく制御できます。そのために必要なツールは pythonに
用意されています。
pythonのパッケージ管理は歴史的な理由から
資料が散在していて学びにくいのですが、最近は
かなりシンプルにまとまりつつあります。
pyproject.toml の登場でだいぶ楽になってます。
詳細ありがとうございます。
大変勉強になります。
理解がまだまだ乏しく恐縮です。
回答いただいた内容とズレてしまうかもしれませんが例えばこんなことは可能でしょうか。
他者パソコンへ、Pythonのライブラリをインストールする際、バージョンを指定するようにバッチファイルなどを仕込んでおき、Pythonコード自体にもバージョン指定で記述する。
こうすることで、バージョンアップされても問題なく動くことは可能でしょうか。
No.3
- 回答日時:
エラーのことまで考えているのは見込みがありますね。
でもご自分のPython作品を他の社員に公開して使ってもらうというのは控えたほうがいいですよ。「作品」はツールじゃありません。
いったん業務ツールとして使われだしたら維持運用の負荷は全部あなたに降りかかります。そしてトラブル対応で業務が遅延したりすると全部あなたのせいです。あなたのツールでみんな楽ができてたはずなのに、感謝の気持ちはどこにもありません。それどころか怒りの矛先は全部あなたに向いてます。
だからご自分が楽をするためのツールとしてひっそり使うことをお勧めします。自分のツールなら何が起きても自分で対応すれば大丈夫です。
もしも社内ツールを目指すのであれば、環境変化に対応するための維持管理の工数やツールリリースとバージョンアップ計画、検証工数、障害対応ルールなどを明確にしたうえで、全体の仕組みとして構築して対応する必要があります。
No.4
- 回答日時:
このての「ライブラリ地獄」を回避するには
サイドバイサイド式のインストールしか有りません。
pythonには「仮想環境」という仕掛けが用意されてます。
これとNO.2で述べた「パッケージ管理」を組み合わせると完璧な
サイドバイサイドなインストールが可能です。
ちょっとめんどくさいですけどね。
普通のアプリに比べインストールが面倒です。
No.5
- 回答日時:
>他者パソコンへ、Pythonのライブラリをインストールする際、
>バージョンを指定するようにバッチファイルなどを仕込んでおき、
まず
①pipを使ったパッケージのインストール
②アプリを配布用にパッケージ化する方法
③アプリを仮想環境を利用してサイドバイサイドで実行する方法
を学ぶことをお勧めします。
pipは配布用パッケージからライブラリとの依存条件を読み取り
環境を整える機能を持っています。
但し、初心者向けの内容では無いので
初心者が学ぶのは結構大変です。
アプリのインストールやインスト―ラーの作成は
pythonに限らず、
ソフト開発の鬼門のひとつなので・・・
No.6
- 回答日時:
バージョナップでエラーになることが心配でしたら、pythonのバージョンを指定するといいと思いますよ~
また社内の方々に共有するということでしたら、pythonプログラムではなくpythonプログラムをexeファイル化する手段を検討したほうがよいと思います!これならバージョン固定ができますし、なんなら開発環境以外にはpythonの環境を整えなくても問題ないです。(https://qiita.com/nal_dal_dere/items/95e173068af …)
ありがとうございます。
バージョン指定とexe化で解決できるのですね!!Python、まったく無知なので他者共有の際、他にもリスク要因があるのかは勉強してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# pythonで外部のファイルを読み込む際のエラー 2 2022/04/12 19:22
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- その他(IT・Webサービス) 4月から入社した新会社員です。文系です。(大学は異文化コミュニケーション学部でした。中国の高校に合格 1 2023/04/06 12:52
- その他(プログラミング・Web制作) Spyder上のPythonでinputが実行されません。 2 2022/08/15 11:57
- その他(プログラミング・Web制作) dockerとは? 新しい配属先でテレワークになり、テレワーク用のpcにdockerを入れたのですが 2 2022/09/22 07:54
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- UNIX・Linux WSL+Dockerでpython実行環境構築について 3 2023/05/05 17:03
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
そのまま使っただけなのに・・・python
その他(プログラミング・Web制作)
-
Pythonについて。
その他(プログラミング・Web制作)
-
JRのjsonファイルって使って大丈夫そ?
その他(プログラミング・Web制作)
-
-
4
関数定義について質問です 架空のプログラミング言語ですが、こういう関数があった時、何を返してくれそう
その他(プログラミング・Web制作)
-
5
このように書くべきですか? { object = action() if(object.isSucc
その他(プログラミング・Web制作)
-
6
python の 連鎖代入の文法
その他(プログラミング・Web制作)
-
7
pythonにてseleniumを使うも、プロファイルを開けず・・・
その他(プログラミング・Web制作)
-
8
最新のプログラム言語を学ぶには何がいいですか?
その他(プログラミング・Web制作)
-
9
C++でデスクトップGUIアプリ開発の環境について
C言語・C++・C#
-
10
gcc13.2のバグ?
C言語・C++・C#
-
11
pythonについて。
その他(プログラミング・Web制作)
-
12
Pythonについて。
その他(プログラミング・Web制作)
-
13
プログラミング言語の制作方法について
C言語・C++・C#
-
14
P2P地震速報のEEW APIの仕様書を解読してほしい。
その他(プログラミング・Web制作)
-
15
pythonの条件分岐(if)
その他(プログラミング・Web制作)
-
16
プログラミングをやってます。 pythonでdnnやcnnをnumpyだけで実装しました。rsa暗号
その他(プログラミング・Web制作)
-
17
Pythonについて。
その他(プログラミング・Web制作)
-
18
これなにがちがうんですか??
C言語・C++・C#
-
19
プログラムの素朴な質問です 分岐するコードを書く時に、 /** * 関数 */ sub(){ ...
その他(プログラミング・Web制作)
-
20
MacのPythonでの開発について
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP.NETとVB.NETの違いってどの...
-
dbMagicって今でも使われている...
-
C#とC++とJavaが学べる書籍につ...
-
Pythonって何を意識した言語な...
-
プログラミング未経験者(殆ど未...
-
プログラムに書かれる"%"記号の...
-
家庭のパソコンで Python の 環...
-
C言語、C+、C++、C#の違い
-
質問失礼します。 プログラム言...
-
Visual Studio Codeについて
-
Linux Cプログラミングを学ぶた...
-
最新のプログラム言語を学ぶに...
-
LeetCodeていうの初めて、
-
UWSCはどのプログラミング言語?
-
rpa化する言語としてら何があり...
-
C言語とhtmlの違いを どな...
-
プログラミングを教えたいです...
-
VBScriptで引数を省略したい場合
-
COBOLでのNOT = の AND条件
-
COBOLで文字タイプを数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MacのPythonでの開発について
-
Pythonを勉強中で、初歩的です...
-
dbMagicって今でも使われている...
-
ASP.NETとVB.NETの違いってどの...
-
VxWorks+Tornadoを使っての開発
-
c#で作ったアプリケーションを...
-
VB開発のMicrosoft Excel 9.0 O...
-
MSDNは必要か?
-
VxWorksは何系osになるのでしょ...
-
VB5.0からのバージョンアップ
-
Visual Studio2010に詳しい方
-
VisualBasic.NETのWebサーバはA...
-
”SAP”をコントロールするアプリ...
-
PSPの自作アプリについて
-
HTML(及びXML)文を含むVBScri...
-
VisualStudioによるアプリ開発...
-
インフラ系SEとアプリケーショ...
-
Windows CE .NET 4.2 でのWEBア...
-
VisualBasicで開発した自作ソフ...
-
VBA開発での便利なツールを探し...
おすすめ情報