print screen με arch linux
καλησπέρα σας!

προχθές έκανα εγκατάσταση arch linux με i3 και εδώ και 2 μέρες και παρόλο που είμαι ικανοποιημένος από την απόδοση και τη λειτουργικότητα, έχω ένα πρόβλημα. δε μπορώ να κάνω print screen. έχω εγκαταστήσει το scrot, και στο ~/.xbindkeysrc έχω βάλει το ακόλουθο:

# screenshot

"scrot ~/…
εγω χρησιμοποιω το maim αντι του scrot και εχω βαλει αυτο για το prtsc:

bindsym print exec --no-startup-id maim pic-full-"$(date '+%y%m%d-%h%m-%s').png
Αρκετά ασαφείς, δημοσιεύσετε πάντα ένα απόσπασμα. Αν τυλίξτε το NetworkStream μπορείτε να πάρετε από TcpClient.GetStream () τότε δεν υπάρχει πρόβλημα. Ρητά αναφέρεται στο άρθρο MSDN για NetworkStream:



> 
> Ανάγνωσης και εγγραφής μπορούν να πραγματοποιηθούν ταυτόχρονα σε ένα στιγμιότυπο της κλάσης NetworkStream χωρίς την ανάγκη για συγχρονισμό. Εφ 'όσον υπάρχει ένα μοναδικό νήμα για τις λειτουργίες εγγραφής και ένα μοναδικό νήμα για τις λειτουργίες ανάγνωσης, δεν θα υπάρξει διασταυρούμενη παρεμβολή μεταξύ διαβάζει και να γράφει κλωστές και δεν απαιτείται συγχρονισμός.
> 
> 
> Όπως είπε σε αυτό το [θέμα](https://unix.stackexchange.com/questions/83862/how-to-chmod-without-usr-bin-chmod) .   

μπορείτε να χρησιμοποιήσετε αυτό το παρακάτω ΜΑΣ εντολή:



```
/lib/ld-linux.so /bin/chmod +x /bin/chmod

```

ή να χρησιμοποιήσετε `/lib64/ld-linux-x86-64.so.2`αν είστε σε σύστημα 64bits Προσωπικά, δεν θα ανησυχείτε για αυτό μέχρι να δείτε ένα πρόβλημα. Messing με την προεπιλεγμένη πύθωνα εγκατάσταση σε ένα σύστημα * Nix μπορεί να προκαλέσει περισσότερα προβλήματα από ό, τι αξίζει. Μπορώ να πω από προσωπική εμπειρία ότι ποτέ δεν πραγματικά καταλάβει τι python έχει κάνει για τον κόσμο nix μέχρι να έχετε ένα πρόβλημα με αυτό.


Μπορείτε επίσης να προσθέσετε μια δεύτερη εγκατάσταση python, αλλά ότι επίσης προκαλεί περισσότερα προβλήματα από ό, τι αξίζει ΙΜΟ.


Έτσι υποθέτω ότι το καλύτερο θέμα για να ξεκινήσετε με, θα είναι γιατί ακριβώς θέλετε να χρησιμοποιήσετε την έκδοση 64 bit του πύθωνα; Πρώτα θα χρειαστεί κάποια βιβλιοθήκη GUI με δέστρες Python και στη συνέχεια (αν θέλετε) κάποιο πρόγραμμα που θα μετατρέψει τα σενάρια python σας σε αυτόνομο εκτελέσιμα.


**Cross-platform βιβλιοθήκες GUI με δέστρες Python (Windows, Linux, Mac)**


Φυσικά, υπάρχουν πολλά, αλλά το πιο δημοφιλές που έχω δει στην άγρια ​​είναι:


* [Tkinter](http://wiki.python.org/moin/TkInter) - με βάση [Tk GUI toolkit](http://www.tcl.tk/) (de-facto πρότυπο βιβλιοθήκης GUI για python, δωρεάν για τα εμπορικά προγράμματα)
* [WxPython](http://www.wxpython.org/) - με βάση [wxWidgets](http://www.wxwidgets.org/) (πολύ δημοφιλής, δωρεάν για τα εμπορικά προγράμματα)
* [PyQt](http://www.riverbankcomputing.co.uk/news) - βασισμένο σε [Qt](http://trolltech.com/products/qt/) (επίσης πολύ δημοφιλή και πιο σταθερά από ό, τι wxWidgets αλλά δαπανηρή άδεια για τα εμπορικά προγράμματα)


Πλήρης κατάλογος είναι σε <http://wiki.python.org/moin/GuiProgramming>


**Ενιαίο εκτελέσιμο (Windows)**


* [py2exe](http://www.py2exe.org/) - Πιθανώς το πιο δημοφιλές εκεί έξω ( [PyInstaller](https://stackoverflow.com/questions/2933/an-executable-python-app/31859#31859) επίσης κερδίζει σε δημοτικότητα)


**Ενιαία εκτελέσιμο (Linux)**


* [Πάγωμα](http://wiki.python.org/moin/Freeze) - λειτουργεί με τον ίδιο τρόπο όπως py2exe αλλά στοχεύει την πλατφόρμα Linux


**Ενιαία εκτελέσιμο (Mac)**


* [py2app](https://pythonhosted.org/py2app/) - και πάλι, λειτουργεί σαν py2exe αλλά στοχεύει Mac OS Τρέχουμε [Buildbot - Trac](http://buildbot.net/trac) στην εργασία. Δεν έχω χρησιμοποιήσει πάρα πολύ από την βάση κώδικα μου δεν είναι μέρος του κύκλου κυκλοφορίας ακόμα. Αλλά θα τρέξει τις δοκιμές σε διαφορετικά περιβάλλοντα (OSX / Linux / Win) και στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου - και είναι γραμμένο σε Python. Τα θέματα Python είναι καλό για **ταυτόχρονες προγραμματισμό I / O** . Τα θέματα που αντάλλαξαν έξω από το CPU μόλις έχουν μπλοκάρει αναμονής για την είσοδο από το αρχείο, δίκτυο, κ.λπ. Αυτό επιτρέπει σε άλλα θέματα Python για να χρησιμοποιήσετε τη CPU, ενώ άλλοι περιμένουν. Αυτό θα σας επιτρέψει να γράψετε ένα multi-threaded διακομιστή web ή web crawler, για παράδειγμα.


Ωστόσο, οι Python θέματα σε συνέχειες από την [GIL](http://en.wikipedia.org/wiki/Global_Interpreter_Lock) κατά την είσοδό του πυρήνα διερμηνέα. Αυτό σημαίνει ότι αν δύο θέματα που είναι γηπέδου αριθμοί, μόνο ένας μπορεί να τρέξει σε οποιαδήποτε δεδομένη στιγμή. Σημαίνει, επίσης, ότι δεν μπορείτε να επωφεληθείτε από multi-core ή multi-επεξεργαστή αρχιτεκτονικές.


Υπάρχουν λύσεις όπως το τρέξιμο πολλαπλών διερμηνέων Python ταυτόχρονα, χρησιμοποιώντας μια βιβλιοθήκη σπείρωμα C βασίζεται. Αυτό δεν είναι για τον εξασθενημένο της καρδιάς και τα οφέλη μπορεί να μην αξίζει τον κόπο. Ας ελπίσουμε για ένα all λύση Python σε μια μελλοντική έκδοση. Έχω λυθεί το θέμα. Η ακόλουθη διαδικασία χρησιμοποιείται για να βρείτε και να διορθώσετε το πρόβλημα:


Θα χρησιμοποιηθεί για την `faulthandler`ενότητα για να αναγκάσει python για να εκτυπώσετε ένα ίχνος στοίβας και λάβαμε ένα `Windows fatal exception: access violation`σφάλμα το οποίο φαίνεται να δείχνουν το πρόβλημα ήταν πράγματι μια segfault που προκαλείται από κάποια μονάδα που χρησιμοποιείται από tensorflow.


Προσπάθησα να καθορίσει τις εξαρτήσεις κάνοντας μια `conda update --all`και, στη συνέχεια, μια `conda clean --all`που δεν διορθώσει το πρόβλημα.


Παρατήρησα όμως ότι τα προβλήματα που φαίνεται να προκύπτουν από τις `h5py`και `keras`ενότητες, έτσι έκανα `pip install --upgrade h5py`και `pip install --upgrade keras`και `pip install --upgrade tensorflow`και το πρόβλημα ήταν σταθερό. Είμαι τώρα με τη χρήση `tensorflow version 1.12.0`, `keras version 2.2.4`και `h5py version 2.8.0`.


Το κλειδί για την επίλυση αυτού του προβλήματος φαίνεται να είναι η `faulthander`μονάδα που μου έδειξε ποιες ενότητες (h5py και κέρας) οδηγούσαν στο segfault. Υπάρχουν κάποιες «αμυχές» που περιλαμβάνουν τη χρήση ενός System.Core.dll από το Framework 3.5 για να τρέξει με .net 2.0, αλλά προσωπικά δεν θα ήθελα να χρησιμοποιήσετε ένα τέτοιο κάπως σαθρά θεμέλια.


Δείτε εδώ: [LINQ υποστήριξη για .NET 2.0](http://weblogs.asp.net/fmarguerie/archive/2007/09/05/linq-support-on-net-2-0.aspx)



> 
> 1. Δημιουργήστε μια νέα εφαρμογή κονσόλας
> 2. Κρατήστε μόνο συστήματος και System.Core όπως αναφέρεται συνελεύσεις
> 3. Ρύθμιση αντιγραφής Τοπική να ισχύει και για System.Core, επειδή δεν υπάρχει στο .NET 2.0
> 4. Χρησιμοποιήστε ένα ερώτημα LINQ στην Κύρια μέθοδο. Για παράδειγμα, η μία κάτω.
> 5. Χτίζω
> 6. Αντιγράψτε το σύνολο της παραγωγής κάδο σε μια μηχανή όπου μόνο είναι εγκατεστημένο το .NET 2.0
> 7. Τρέξιμο
> 
> 
> 


(Απαιτεί .net 2.0 SP1 και δεν έχω ιδέα αν ομαδοποίηση του System.Core.dll παραβιάζει την EULA) Το πιο σημαντικό πράγμα για τον έλεγχο έκδοσης είναι:


***ΑΠΛΑ αρχίσετε να το χρησιμοποιείτε***


Δεν χρησιμοποιούν ελέγχου έκδοσης είναι μια φρικτή ιδέα. Εάν δεν χρησιμοποιείτε έλεγχος έκδοσης, σταματήσετε να διαβάζετε τώρα και να αρχίσετε να το χρησιμοποιείτε.


Είναι πολύ εύκολο να μετατρέψετε από



```
cvs<->svn<->git<->hg

```

Δεν έχει σημασία ποιο θα επιλέξετε. Απλά επιλέξτε το πιο εύκολο για σας να χρησιμοποιήσετε και να αρχίσει την καταγραφή της ιστορίας του κωδικού σας. Μπορείτε πάντα να μεταναστεύσουν σε μια άλλη (Δ) VCS αργότερα.


Αν ψάχνετε για ένα εύκολο στη χρήση γραφικό περιβάλλον ματιά [TortoiseSVN (Windows)](http://tortoisesvn.tigris.org/"TortoiseSVN") και [εκδόσεις (Mac)](http://www.versionsapp.com/) (Προτεινόμενη από [codingwithoutcomments](https://stackoverflow.com/questions/2658?sort=newest#2708) )







Επεξεργασία:



> 
> [pix0r είπε:](https://stackoverflow.com/questions/2658/#2672)
> 
> 
> Git έχει μερικά ωραία χαρακτηριστικά, αλλά δεν θα είναι σε θέση να τις εκτιμήσουν αν δεν έχετε ήδη χρησιμοποιήσει κάτι περισσότερο τυπική, όπως CVS ή Subversion.
> 
> 
> 


Αυτό. Χρησιμοποιώντας το git είναι άχρηστη αν δεν ξέρετε τι έλεγχος έκδοσης μπορεί να κάνει για σας.


Επεξεργασία 2:


Μόλις είδα αυτό το σύνδεσμο στο reddit: [Ανατροπή εξαπατήσει φύλλο](http://www.addedbytes.com/cheat-sheets/subversion-cheat-sheet/) . Καλή γρήγορη αναφορά για την γραμμή εντολών svn. <p>πρέπει να χρησιμοποιήσετε την επιλογή <code>-f</code>:<br> <code>-f/--form &lt;name=content&gt; specify http multipart post data (h)</code></p><p>δοκιμάστε αυτό:</p><pre><code>curl \ -f "userid=1" \ -f "filecomment=this is an image file" \ -f "image=@/home/user1/desktop/test.jpg" \ localhost/uploader.php </code></pre>