donttalktomeのプロフィール

@donttalktome donttalktome
ありがとう数20
質問数0
回答数23
ベストアンサー数
10
ベストアンサー率
83%
お礼率
0%

  • 登録日2017/02/21
  • 性別男性
  • 都道府県北海道
  • pythonのエラーメッセージ

    cross simをインストールしようとしたら以下のエラーメッセージが表示されます。アップグレードもしたのですが状況が変わりません。 どなたか解決策をご存じ方がいれば教えて頂けますでしょうか (Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ ERROR: Could not find a version that satisfies the requirement cross_sim==0.2.0 (from versions: none) ERROR: No matching distribution found for cross_sim==0.2.0).

  • tkinterのコンボボックスとラベルの連携表示

    以下のサイトを参考に、Pythonのtkinterを用いて簡単なGUIを作成しています。 https://office54.net/python/tkinter/ttk-combobox-widget https://toolmania.info/post-12996/ 現在、コンボボックスとラベルの連携表示において、上手く想定通りの挙動を示さず困っております。 下記のコードにおいて、 「combobox」の値(クリックして選択)を変更した際に、 label1: list1を反映しているコンボボックスの文字列をそのまま反映、 label2: label1用のウィジェット変数(strvalue_widget)の文字列をlist1から検索して要素番号(インデックス)を取得し、更にlist2から同じ要素番号の数値を反映 という表示を行いたく考えているのですが、 実際にコンボボックスをクリックした際、label2の表示が空白となってしまう状態です。 しかし、確認のためにlabel2用のウィジェット変数(floatvalue_widget)を出力してみる(25行目)と、クリック毎に適切な値が出力されます。 (ウィジェット変数としては正しく認識されているにもかかわらず、表示だけが適切にされないという不可解な状況になっています。) 色々と試行錯誤してみましたが、label2は空白もしくはデフォルト値(0.1)から変わらないだけで、 どうしてもきちんと連動した動きを見せてくれませんでした。 お手数をお掛けして申し訳ありませんが、どなたかお詳しい方がおられましたら、 是非教えていただけますと助かります。 よろしくお願いします。 【以下、問題としているサンプルコード】 import tkinter as tk from tkinter import ttk list1 = ["No.1", "No.2", "No.3", "No.4", "No.5"] list2 = [0.1, 0.2, 0.3, 0.4, 0.5] #rootメインウィンドウの設定 root = tk.Tk() #メインフレームの作成と設置 frame = ttk.Frame(root) frame.grid(column=0, row=0, sticky=tk.NSEW, padx=5, pady=10) strvalue_widget = tk.StringVar(value=list1[0]) floatvalue_widget = tk.DoubleVar(value=list2[0]) label1 = ttk.Label(frame, textvariable=strvalue_widget) label2 = ttk.Label(frame, textvariable=floatvalue_widget) combobox = ttk.Combobox(frame, textvariable=strvalue_widget, values=list1) def combobox_clicked(event): global floatvalue_widget floatvalue_widget = float(list2[list1.index(combobox.get())]) print(f"確認 floatvalue_widget: {floatvalue_widget}") return combobox.bind("<<ComboboxSelected>>", combobox_clicked) #レイアウト label1.grid(row=0, column=0) label2.grid(row=0, column=1) combobox.grid(row=0, column=2) #GUIウィンドウを常駐表示 root.mainloop()

  • Python3でのメタプログラミングについて

    下記の Ruby スクリプトと同じことを Python で行う場合、どのように実装すればいいでしょうか? <前提> ・メソッドを Klass クラスに実行時に動的に追加する。 ・追加したメソッドの動的削除、変更は必要ない。 ・メソッド定義は、Python のオブジェクトではなく単なる文字列。 ・メソッド内部から Klass クラス内のインスタンス変数にアクセスする。 ・Klass クラスや Klass インスタンスを扱う処理から、動的に追加したメソッドを呼び出す。 ・追加したメソッドはシングルトンメソッドである必要はない。 <目的> Klass クラスのカスタマイズ機能をメソッド定義文として外部に保存しておいて、実行時に呼び出して機能を拡張するような目的です。Klass クラスはめったに変更されないもの、カスタマイズ機能(メソッド定義文)はよく変更されるもの、という切り分けをしたいため、単純に多重継承や MixIn はしたくないです。(上手い方法があればいいのですが…) #!/usr/bin/env ruby # coding: utf-8 # 文字列のメソッド定義 $user_funcs = [' def user_foo() puts "foo" * @x end ', ' def user_bar() puts "bar" * @x end '] # ↑本来は文字列として外部DBに記録されている。 # ---- # # 拡張したいクラス # class Klass # インスタンス変数を持つ def initialize @x = 3 end attr_accessor :x # 文字列で定義されたメソッドを追加 $user_funcs.each do |f| eval f end end # ---- # # 呼出方法 # obj = Klass.new # 追加されたメソッド(user_から始まる名前)を列挙しながら実行する # => どんな定義がされていても、命名規則さえ守っていれば呼び出し側はそのメソッド名を知る必要はない。 obj.methods.select {|m| /^user_/ =~ m }.each do |m| eval "obj.#{m}" end # 追加されたメソッドはシングルトンメソッドではなく、あくまでもインスタンスメソッドである。 obj2 = Klass.new # インスタンス変数の書き換え obj2.x = 4 # インスタンスメソッドの書き換え def obj2.user_bar() puts "hoge" * @x end obj2.methods.select {|m| /^user_/ =~ m }.each do |m| eval "obj2.#{m}" end

  • Xpathがわからない。

    capybaraとXpathを使ってrubyスクレイピングをしようとしています。 まず添付画像を御覧ください。 ゴールは添付画像のurl部分を(文字列として)抽出することです。(末尾がclans/7.pngみたいになってるやつです) 条件として、添付画像のように、親要素の親要素のクラスに "checkedin"を含むこと。 (画像では省略されていますが、本来のソースコードでは添付画像の一番上の要素に類するものがいくつも並んでいます。その中から、画像のように "checkedin" を含むものを抽出しようとしています) 親要素の親要素の条件を指定しない場合は images = session.find_all(:xpath, '//img[contains(@src,"clans")]') puts images[i][:src] といったコードでURLを抽出できたのですが、上述の条件を指定する場合にどのような記述をすれば良いかわかりません。 checkedin = session.find_all(:xpath, 'tr[contains(@class,"checkedin") and .//img[contains(@src,"clans")]]') と書いたり他色々試しましたが、全てエラーです。 上述の条件を指定して記述するにはどうすればいいのでしょうか。。 (先祖要素の条件指定でなく、まず先祖要素の条件を指定してから子要素のurl抽出をするのもあると思いそれっぽい手法を試しましたが、capybaraそのものが良くわかっておらずエラーになります) (ちなみにcapybaraを使っているのは、以前質問した時におすすめされたからです。 詳細URL→https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13198824358 本当はnokogiriでやりたかったのですが、nokogiriですとurl部分が正常に取得できませんでした。 nokogiriでもurl部分を正しく抽出できる方法があれば是非教えてください。capybaraよりnokogiriの方が使いやすいので。。) 質問の回答になっていないそもそも論は禁止でお願いします。(python使え等)

    • ont_rt
    • 回答数1
  • 動的なページのスクレイピング

    動的なページのスクレイピング まず下記のurl御覧ください。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q131988243... これで「静的なページの」スクレイピングできるようになったはいいのですが、問題はここからです。 https://sv.j-cg.com/compe/view/entrylist/1489 ↑このような、「ある程度スクロールすると追加でコンテンツが読み込まれるページ」については、正しくスクレイピングできませんでした。 「JavaScriptを実行させて、変化後の要素を取得する」ためにヘッドレスブラウザ(phantomjs)を使っているはずなのに、これは腑に落ちなさすぎるんですが。。 ググったところ、やっぱり「phantomjsを使う」のは正しい解決法のようなんですが、 (これとか→https://ja.stackoverflow.com/questions/19681/nokogiri%E3%81%A7%E5%8...) やっぱり追加後のDOM?については解析できませんでした。 JCGのサイトについてはスクロール時に読み込まれるのはjavascriptの仕様ではないのか、はたまたコードがよくないのか… 教えてください。

    • ont_rt
    • 回答数1