Portál AbcLinuxu, 12. května 2025 05:27

Dotaz: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano

31.10.2020 18:41 zdenek2008 | skóre: 26
Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano
Přečteno: 284×
Odpovědět | Admin
Příloha:
Na Debianu 10 stable s KDE mam nejake skripty v Pythonu 3 ktere vyuzivaji python3-pyperclip. Ted se ukazalo, ze pokud ulozim do schranky nejaky text pomoci pyperclip.copy('nejaky text'), neukaze se ve schrance. Ale z jineho skriptu text stejnym prikazem ulozim a ve schrance JE a muzu ho kdekoliv vlozit pomoci ctrl+v. Pritom ten ktery neuspesne uklada do schranky normalne vytahne ten text ze schranky vytahne pomoci print(pyperclip.paste()) a cokoliv jineho je ve schrance vytahne take. Cili vlastne ten skript vidi ve schrance to co vsechny ostatni programy a ten "svuj" obsah, ktery ale nevidi jine programy ani se neukazuje ve schrance (v nastrojovem panelu).

Skript spoustim jako "python3 skript.py", jako "python3 -m skript" i primo z Dolphinu dvojklikem. Zkusil jsem pridat do adresare __init__.py i smazat to, smazal jsem i adresar __pycache__, ale udela se znovu a nic z toho stejne nepomohlo. Mam podezreni jestli to nema co delat s pythonovym importovacim systemem? Nedavno se mi totiz choval divne jiny skript volany pomoci "pythpon -m skript", ktery pak fungoval normalne pokud se spoustel "python skript.py".

Tento kod funguje normalne, volany "usr/bin/python3 skript.py":
def snippet(ucel):
    pyperclip.copy(f'\n#{ucel}{snippety[ucel]}\n')
    print(f'\nsnippet {ucel}:{snippety[ucel]}')
Ale tento ne:
pyperclip.copy(celkovy_vytazeny_text)
Cely skript prikladam v priloze a zde je cast textu pro zpracovani skriptem (se skriptem samotnym nema co delat, jde o vytazeni plantuml komentaru z nejakeho pythonoveho skriptu):
def visa_category_s_informants_against_criminal_or_terrorist_organizations(x):
    """s visas for informants against criminal or terrorist organizations"""
    ys5 = ['informant against criminal organization']
    ys6 = ['informant against terrorist organization']
    ys7 = ['family member of an s visa holder']
    print 's-5',ys5
    print 's-6',ys6
    print 's-7',ys7
    #.# if (Informant Against Criminal Organization) then (yes)
    if x in ys5:
        #.# :S-5 Visa;
        return 's-5'
    #.# elseif (Informant Against Terrorist Organization) then (yes)
    elif x in ys6:
        #.# :S-6 Visa;
        return 's-6'
    #.# elseif (family member of S Visa holder) then (yes)
    elif x in ys7:
        #.# :S-7 Visa;
        return 's-7'
    #.# else (no)
    else:
        #.# stop
        return 'nic'
        #.# endif

def visa_category_tn_and_other_north_american_free_trade_agreement(x):
    """tn and other visas for north american free trade agreement"""
    y = ['north american free trade agreement']
    print 'tn and other',y
    #.# if (North American Free Trade Agreement) then (yes)
    if x in y:
        #.# :TN and Other Visas;
        return 'tn and other'
    #.# else (no)
    else:
        #.# stop
        return 'nic'
        #.# endif
Nemeli byste nekdo nejaky napad co s tim? Kdyztak predem diky za pripadne tipy.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.10.2020 21:43 Karel
Rozbalit Rozbalit vše Re: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle je splněno?

On Linux, this module makes use of the xclip or xsel commands, which should come with the os. Otherwise run “sudo apt-get install xclip” or “sudo apt-get install xsel” (Note: xsel does not always seem to work.)

Otherwise on Linux, you will need the gtk or PyQt4 modules installed.
1.11.2020 10:56 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano
Tyto dva jsem instaloval jeste pred dotazem zde. Nepomohlo to. Nikdy predtim jsem je nemel nainstalovane a situace byla tak jak popisuji v dotazu. Ale mam GTK+ 3 takze asi proto to castecne funguje. Kazdopadne diky za tip, treba budou ty balicky uzitecne jinak.
Gréta avatar 1.11.2020 15:11 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano

zkus dát dopryč ten xsel a mit tam jakoby jenom ten xclip možná :O :O

koukni taky sem možná co tam všecko různýho raděj v komentáři v __init__.py zdrojáčku na githubu hele

1.11.2020 17:35 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano
Diky ze tip, xsel je pryc ale chova se to stejne. Jeste si procitam ty instrukce z tveho odkazu, zaroven mam neblahe podezreni ze ten problem souvisi s "importovymi pastmi" jak se uvadi v tomto clanku:

http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html

Jestli spravne rozumim tak Python si pri prvnim spusteni skriptu nejak upravi systemovou cestu a podle toho pak ho prirazuje k namespace. Ja ho poprve spustil jako "python3 -m skript", __init.py__ v tom konkretnim adresari nemam, tak jestli v tom neni nejaky zadrhel. Ale to jsou samozrejme jen takove domnenky.
Gréta avatar 1.11.2020 15:08 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano
Odpovědět | | Sbalit | Link | Blokovat | Admin

mě to jakoby uplně normálně funguje :O :O

debian bullseye/sid taky s kde a pyperclip 1.8.1

noa z těch tří balíčků požadovanejch mam nainstalovanej jenom xclip :O :O

Zelená energetická soustava založená na obnovitelnejch zdrojích energie versus realnej svět 🤡🇪🇸
1.11.2020 17:13 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: Python 3: pyperclip.copy() se neukaze z jednoho skriptu ale z jineho ano
Blahopreji, presne to je ucel toho skriptu (aby fungoval).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.