रिदमबॉक्स पायथन कंसोल का उपयोग कैसे करें


13

शायद यह स्पष्ट है और मैं इसे याद कर रहा हूं, या हो सकता है कि किसी ने पहले से ही एक महान मार्गदर्शक लिखा हो और मेरी (थकाऊ लगने वाली) गुग्लिंग इसे चालू करने में विफल हो रही है, लेकिन मैं अपने जीवन के लिए यह पता नहीं लगा सकता कि कैसे दारू अजगर को सांत्वना दिया जाए कुछ भी करने के लिए रिदमबॉक्स !

मैंने इसे प्लगइन मेनू से सक्षम किया है, और फिर टूल-> पायथन कंसोल का उपयोग करके इसे खोलें।

यह प्रिंट करता है

You can access the main window through the 'shell' variable :
<rb.Shell object at 0xa6cdd24 (RBShell at 0xa14e000)>
>>> 

लेकिन प्रॉम्प्ट पर मैं जो कुछ भी लिखता हूं वह कुछ भी नहीं करता है ! मैंने कोशिश की है help, मैंने कोशिश की है exit(), मैंने कोशिश की है print "hello world", कुछ भी नहीं करता है!

ये सभी चीजें, निश्चित रूप से, एक सामान्य अजगर कंसोल में काम करती हैं। मुझे कोई सुराग नहीं है कि शैतान यहाँ क्या अंतर है! क्या मैं हिट एंट्री के अलावा कुछ और करने वाला हूं?


मैं बस टर्मिनल से "रिदमबॉक्स-क्लाइंट-एच" जानता था। इस प्लगइन के बारे में पता करने के लिए +1।
रोजन

जवाबों:


8

रिदमबॉक्स प्लगइन्स लेखन गाइड आदेशों आप प्लेबैक नियंत्रित करने के लिए अजगर कंसोल में इस्तेमाल करते हैं और रिदमबॉक्स संशोधित कर सकते हैं के कई उदाहरण हैं:

  • चालू करे रोके

    shell.props.shell_player.playpause()
  • रुकें

    shell.props.shell_player.stop()
  • अगला गाना

    shell.props.shell_player.do_next()
  • प्ले क्यू में एक गीत जोड़ें

    shell.add_to_queue("file://awsome_song.ogg")
  • एक दृश्य प्रदर्शित करें

    import gst
    goom = gst.element_factory_make ("goom")
    sink = gst.element_factory_make ("ximagesink")
    colour = gst.element_factory_make ("ffmpegcolorspace")
    b = gst.Bin()
    b.add (goom, colour, sink)
    b.add_pad(gst.GhostPad("sink", goom.get_pad("sink")))
    goom.link(colour)
    colour.link(sink)
    shell.get_player().props.player.add_tee(b)

यह सहायक है, और वास्तव में मुझे यह पहले मिला था, हालांकि मैं जो देख रहा हूं वह यह है कि वास्तव में कंसोल का उपयोग कैसे करें। क्या यह एक नियमित पायथन कंसोल की तरह है; एक कमांड टाइप करें और एंटर करें? यदि ऐसा है, तो मेरा टूट गया है। जब मैं एक कमांड टाइप करता हूं और एंट्री मारता हूं, तो यह कोड की लाइन को निष्पादित किए बिना सिर्फ एक नई रेखा बनाता है। जब तक मुझे पता है कि यह टूट गया है, तब तक मैं इसे ठीक करने के लिए मदद मांग सकता हूं; मैं सिर्फ यह सुनिश्चित करना चाहता था कि मैं कुछ गूंगा नहीं कर रहा था (और इसका कोई दस्तावेज इस्तेमाल नहीं कर सकता था!)
TJ Ellis

यह वास्तव में लगता है जैसे कुछ टूट गया है। किसी अन्य प्लग इन सक्षम नहीं होने के साथ रिदमबॉक्स-0.12.8-0ubuntu7 में, कंसोल एक नियमित पायथन कंसोल की तरह काम करता है, जैसे टाइप print "hello world"करें और फिर एंटर दबाएं। मुझे यह समस्या कहीं और नहीं दिखाई गई है, इसलिए आप रिदमबॉक्स बग ट्रैकर में एक नया बग खोलने पर विचार कर सकते हैं ।
19

1
धन्यवाद! अब जब मुझे पता है कि यह टूट गया है, तो मैं थोड़ा और चारों ओर प्रहार करूंगा और एक बग रिपोर्ट दर्ज करूंगा।
टीजे एलिस

ध्यान दें कि कम से कम उबंटू ट्रस्टी तहर 14.04 के साथ, रिदमबॉक्स अजगर 3.4.0 को एम्बेड करता है। तो कमांड 'प्रिंट "हैलो वर्ल्ड"' एक वाक्यविन्यास त्रुटि है;) इसके बजाय, नए पायथन 3 प्रिंट फ़ंक्शन का उपयोग करें: 'प्रिंट ("हैलो वर्ल्ड")
nealmcb

ध्यान दें कि इनमें से कुछ उदाहरण अब ट्रस्टी में काम नहीं करते हैं। शेल के बजाय क्या करना है, इसके बारे में कुछ संकेत देखें। हालांकि (-) हालांकि यह बहुत अधिक जटिल लगता है, दुर्भाग्य से: दुर्भाग्य से mail.gnome.org/archives/rhythmbox-devel/2011-April/…
nealmcb

6

किसी भी पायथन ऑब्जेक्ट के साथ, आप इस पर डीआईआर () विधि का उपयोग करके इसके बारे में बहुत कुछ पता लगा सकते हैं। यह आपको शुरू करने के लिए एक अच्छी जगह देगा।

You can access the main window through the 'shell' variable :
<rb.Shell object at 0x9e9675c (RBShell at 0x987b018)>
>>> dir(rb.Shell)
['__class__', '__cmp__', '__copy__', '__deepcopy__', '__delattr__', '__dict__',
'__doc__', '__format__', '__gdoc__', '__getattribute__', '__gobject_init__', 
'__grefcount__', '__gtype__', '__hash__', '__init__', '__module__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'add_to_queue', 'add_uri', 'add_widget', 'append_source',
'chain', 'connect', 'connect_after', 'connect_object', 'connect_object_after',
'disconnect', 'disconnect_by_func', 'do_notify', 'emit', 'emit_stop_by_name',
'freeze_notify', 'get_data', 'get_party_mode', 'get_player',
'get_playlist_manager', 'get_properties', 'get_property',
'get_source_by_entry_type', 'get_ui_manager', 'guess_source_for_uri', 
'handler_block', 'handler_block_by_func', 'handler_disconnect',
'handler_is_connected','handler_unblock', 'handler_unblock_by_func', 'load_uri',
'notebook_set_page', 'notify', 'notify_custom', 'present', 'props',
'register_entry_type_for_source', 'remove_from_queue', 'remove_widget',
'set_data', 'set_properties', 'set_property', 'stop_emission', 'thaw_notify',
'toggle_visibility', 'weak_ref']

फिर आप '' get_player '' जैसे दिलचस्प दिखने वाले गुणों में से किसी को भी पा सकते हैं।

देखने के लिए एक और अच्छी जगह है यदि आप वस्तु पर एक __doc__ विशेषता देखते हैं।

>>> print rb.Shell.__doc__
Object RBShell

Signals from RBShell:
  visibility-changed (gboolean)
  visibility-changing (gboolean, gboolean) -> gboolean
  create-song-info (RBSongInfo, gboolean)
  removable-media-scan-finished ()
  notify-playing-entry (gboolean)
  notify-custom (guint, gchararray, gchararray, GdkPixbuf, gboolean)

Properties from RBShell:
  no-registration -> gboolean: no-registration
    Whether or not to register
  no-update -> gboolean: no-update
    Whether or not to update the library
  dry-run -> gboolean: dry-run
    Whether or not this is a dry run
  rhythmdb-file -> gchararray: rhythmdb-file
    The RhythmDB file to use
  playlists-file -> gchararray: playlists-file
    The playlists file to use
  selected-source -> RBSource: selected-source
    Source which is currently selected
  db -> RhythmDB: RhythmDB
    RhythmDB object
  ui-manager -> GtkUIManager: GtkUIManager
    GtkUIManager object
  clipboard -> RBShellClipboard: RBShellClipboard
    RBShellClipboard object
  playlist-manager -> RBPlaylistManager: RBPlaylistManager
    RBPlaylistManager object
  removable-media-manager -> RBRemovableMediaManager: RBRemovableMediaManager
    RBRemovableMediaManager object
  shell-player -> RBShellPlayer: RBShellPlayer
    RBShellPlayer object
  window -> GtkWindow: GtkWindow
    GtkWindow object
  prefs -> RBShellPreferences: RBShellPreferences
    RBShellPreferences object
  queue-source -> RBPlayQueueSource: queue-source
    Queue source
  library-source -> RBLibrarySource: library-source
    Library source
  sourcelist-model -> RBSourceListModel: sourcelist-model
    RBSourcelistModel
  sourcelist -> RBSourceList: sourcelist
    RBSourcelist
  source-header -> RBSourceHeader: source header widget
    RBSourceHeader
  visibility -> gboolean: visibility
    Current window visibility

Signals from GObject:
  notify (GParam)

यह आसान है, अगर मैं गोर्रम कंसोल को काम करने के लिए प्राप्त कर सकता हूँ! जैसा कि यह है, अगर मैं टाइप करता हूं, उदाहरण के लिए, dir(rb.Shell)और हिट दर्ज करता है, तो यह सिर्फ एक लाइन ब्रेक जोड़ता है और कुछ भी नहीं करता है ... क्या आपका शेल OOB काम करता है? मेरे पास उबंटू 10.04 पर डिफॉल्ट रिदमबॉक्स इंस्टॉलेशन है .... मैं किसी भी चीज के बारे में नहीं सोच सकता हूं जो मैंने बदल दिया है जो शेल को तोड़ देगा। मेरा नियमित अजगर सांत्वना (आरबी के बाहर) ठीक काम करता है ...
टीजे एलिस

एचएम, हाँ, मेरा शेल बिना किसी संशोधन के ठीक काम करता है।
ब्रूच

3

पवित्र बकवास, मुझे अभी पता चला है कि समस्या क्या थी (2.5 साल बाद) - किसी कारण से मेरे "दर्ज" कुंजी नक्शे दो अलग-अलग प्रमुख घटनाओं पर निर्भर करते हैं कि क्या नंबर्स चालू है या बंद है। जब numlock चालू होता है, तो वह लौटता है KP_ENTER, और जब numlock बंद होता है, तो वह लौटता है Return। मेरे पास हमेशा अंक है, क्योंकि मैं कीपैड के साथ संख्या दर्ज करना पसंद करता हूं।

दुर्भाग्य से, रिदमबॉक्स में अजगर कंसोल केवल Returnएक कमांड को चलाने के लिए पहचानता है - KP_ENTERघटना सिर्फ एक लाइन ब्रेक में प्रवेश करती है ...

लेकिन आसान तय, बस सांत्वना का उपयोग करते समय सुन्न बंद करें। मैं कुछ अन्य अनुप्रयोगों (आमतौर पर गेम) में इस समस्या में भाग गया हूं, इसलिए मैं एक बेहतर दीर्घकालिक समाधान (शायद Returnकिसी भी तरह दोनों को मजबूर करने के लिए ) में देखने जा रहा हूं ...


1
यदि किसी और को यह समस्या है, तो मुझे एक दीर्घकालिक समाधान मिला: xmodmap -pke > ~/.Xmodmap एक कस्टम लेआउट बनाने के लिए, फिर उस फ़ाइल के अंत में एक पंक्ति जोड़ें, फिर इस सत्र के लिए नए कस्टम लेआउट को सक्षम करने के लिए keysym KP_Enter = Return चलाएँ xmodmap ~/.Xmodmap। भविष्य के लिए इसे ऑटोरन बनाने के लिए, निम्नलिखित जोड़ें ~/.xinitrc:if [ -f $HOME/.Xmodmap ]; then /usr/bin/xmodmap $HOME/.Xmodmap fi
टीजे एलिस

लानत-मलामत की टिप्पणियाँ और उनकी कमी खलती है! पहले और बाद में लाइन ब्रेक की जरूरत के लिए ifजोड़ा गया बयान । .xinitrcthenfi
टीजे एलिस

तुम returnअंक की enterकुंजी के बजाय कुंजी का उपयोग क्यों नहीं करते ?
तिमो

मैं मुख्य "एन्टर" कुंजी का उपयोग कर रहा था, न कि अंक में; किसी कारण से / पर सुन्न होने के कारण उस एक के लिए भी एक अंतर बना।
टीजे एलिस

सेंटोस 6.7 लेकिन एनाकोंडा पायथन के साथ, नंबरपैड पर एंटर कुंजी का मुख्य कीबोर्ड पर एंटर कुंजी की तुलना में थोड़ा अलग प्रभाव था। NumLock का असर नहीं हुआ। मुख्य कीबोर्ड एंटर '>>>' प्रॉम्प्ट लौटाएगा, लेकिन नंबरपैड एंटर एक खाली लाइन लौटाएगा।
आरजेटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.