pythonz: install any Python version in your HOME folder

May 20, 2017 3 comments

Problem
You want to install an older / newer version of Python. You don’t want to install it systemwide since you don’t want to mess up your system. How to install it in your HOME folder?

Solution
pythonz was made to address this problem. Install it and add an extra line to your .bashrc (see the docs). Some useful commands:

$ pythonz update           # self-update
$ pythonz list             # list of installed Python versions
$ pythonz list -a          # list of available (installable) Python versions
$ pythonz install 3.5.3    # install CPython 3.5.3
$ pythonz locate 3.5.3     # Where is it installed?

Here is how to create a virtualenv using a specific Python version that was installed with pythonz:

$ virtualenv -p $(pythonz locate 3.5.3) ~/.virtualenvs/project_name

I have a project in a virtual environment that works well with Python 3.5 (Ubuntu). Howeverm, under Manjaro the default Python is 3.6 and the project doesn’t work with it, it stops with some error. I didn’t want to dig in, so I installed CPython 3.5.3 with pythonz and used that version in the virtual environment. It works again :)

Categories: python Tags:

scraping Steam, get through the age check

Problem
You want to scrape Steam but sometimes Steam brings up an age check. How to get through it from a script? Examples: Fallout: New Vegas (age check), PST: EE (additional maturity check?).

Solution

import requests

COOKIES = {
    'birthtime': '283993201',
    'mature_content': '1',
}
URL = "http://store.steampowered.com/app/2028016/Fallout_New_Vegas_Ultimate_Edition/"

r = requests.get(URL, cookies=COOKIES)

Tip from here.

Categories: python Tags: , ,

Anaconda3, Windows, command-line arguments

April 16, 2017 Leave a comment

Problem
I installed Anaconda3 on Windows 7, but when I wanted to pass a command-line argument to a script, the script didn’t receive the parameter(s). The command-line arguments were simply ignored.

Solution
I found the solution here. This is a blog post from 2010. This issue is still unresolved…

In short: open the registry editor (regedit), find the key HKEY_CLASSES_ROOT\py_auto_file\shell\open\command , and append the string “%*” (without quotes) to the end of the entry. It should look similar to this:

"C:\Anaconda3\python.exe" "%1" %*
Categories: python, windows Tags: , ,

Python Coding Conventions at AIC

March 8, 2017 Leave a comment
Categories: python Tags: , ,

namedtuple

February 9, 2017 Leave a comment

A namedtuple can be used as a simple class where you want to group together some attributes, you want to name them, and you don’t need any methods. As its name suggests, it’s a tuple, but you can assign names to the attribues.

Example

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])    # name of the "struct" and its attributes
# Point = namedtuple('Point', 'x y')       # it would also work, and it means the same
                                           # the 2nd parameter can be a single space-delimited string

def main():
    p = Point(x=1, y=4)
    print(p)                # Point(x=1, y=4)
    p = Point(1, 4)
    print(p)                # Point(x=1, y=4)
    print(p.x)              # 1
    print(p[0])             # 1
    print(p == (1, 4))      # True
Categories: python Tags: ,

creating a list of strings

February 5, 2017 1 comment

Have you aver written something like this?

>>> li = ["one", "two", "three", "four"]
>>> li
['one', 'two', 'three', 'four']

When I type in all those quotation marks and commas, I always feel sorry for my finger joints. Is there an easier way? Yes, there is:

>>> li = "one two three four".split()
>>> li
['one', 'two', 'three', 'four']
Categories: python Tags: ,

remove punctuations from a text

February 5, 2017 Leave a comment

Problem
You have a text and you want to remove punctuations from it. Example:

in:
"Hello! It is time to remove punctuations. It is easy, you will see."

out:
"Hello It is time to remove punctuations It is easy you will see"

Solution
Let’s see a Python 3 solution:

>>> import string
>>> tr = str.maketrans("", "", string.punctuation)
>>> s = "Hello! It is time to remove punctuations. It is easy, you will see."
>>> s.translate(tr)
'Hello Its time to remove punctuations Its easy youll see'

Docs: str.maketrans(), str.translate().

Categories: python Tags: , ,