Category Archives: python

How to install pip and create virtualenv on Windows without administrative permission

Since Python 2.7.9, pip is released together with the Python. But I still cannot find it when our administrator installed the latest python on my PC. How to install pip, then create virtualenv on Windows without the administrative permission?

  • Download get-pip.py.
  • Run python get-pip.py --user. It will install pip locally.
  • Install virtualenv by running python -m pip install --user virtualenv. This will install the package of virtualenv
  • Run python -m virtualenv ENV to create a new virtual environment. ENV is a directory to place the new virtual environment.
  • Activate the script by running ENV/Scripts/activate.bat.
  • read more

    How to ignore namespace when selcting XML nodes with XPath

    I have several full article in PMC XML format to parse. I plan to use XPath. However, the namespace always breaks my path. For example, in the following XML I cannot use *//article-id to retrieve all article-id tags. Instead, I have to use *//{http://dtd.nlm.nih.gov/ns/archiving/2.3/}article-id. As you can see, it is really painful.

    <?xml version="1.0" encoding="UTF-8"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> <responseDate>2016-04-08T01:08:52Z</responseDate> <request verb="GetRecord" identifier="oai:pubmedcentral.nih.gov:2702331" metadataPrefix="pmc">http://www.ncbi.nlm.nih.gov/oai/oai.cgi</request> <GetRecord> <record> <header> <identifier>oai:pubmedcentral.nih.gov:2702331</identifier> <datestamp>2009-06-27</datestamp> <setSpec>retrovir</setSpec> <setSpec>pmc-open</setSpec> </header> <metadata> <article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dtd.nlm.nih.gov/ns/archiving/2.3/" xsi:schemaLocation="http://dtd.nlm.nih.gov/ns/archiving/2.3/ http://dtd.nlm.nih.gov/archiving/2.3/xsd/archivearticle.xsd" article-type="research-article"> <front> <article-meta> <article-id pub-id-type="accession">PMC2702331</article-id> <article-id pub-id-type="pmcid">PMC2702331</article-id> <article-id pub-id-type="pmc-uid">2702331</article-id> <article-id pub-id-type="publisher-id">1742-4690-6-47</article-id> <article-id pub-id-type="pmid">19454010</article-id> ... read more

    How to submit a package to PyPI

    How to submit a package to PyPI

    PyPI (Python Package Index) is a repository of software for the Python programming language. This article will tell you how to submit your package to PyPI, so others are able to install it with easy_install or pip. The offical document is at http://wiki.python.org/moin/CheeseShopTutorial#Submitting_Packages_to_the_Package_Index

    Create your accounts

    You must create accounts on PyPI Live and PyPI Test before upload your code.

    After registration, create a pypirc configuration file at ~/. This file holds your information for authenticating with PyPI, both the live and the test versions.

    [distutils]
    index-servers =
      pypi
      pypitest
    
    [pypi]
    repository: https://pypi.python.org/pypi
    username: {{your_username}}
    password: {{your_password}}
    
    [pypitest]
    repository: https://testpypi.python.org/pypi
    username: {{your_username}}
    password: {{your_password}}
    

    Prepare your package

    Every package on PyPI needs to have a file called setup.py at the root of the directory. If you are using a markdown-formatted README file you’ll also need a setup.cfg file. Also, you’ll want a LICENSE.txt file describing what can be done with your code. So the directory structure would look like this:

    root-dir/
      setup.py
      setup.cfg
      LICENSE.txt
      README.md
      mypackage/
        __init__.py
        file1.py
        file2.py
        file3.py
    

    setup.py

    This is metadata about your library.

    from distutils.core import setup setup( name = 'mypackage', packages = ['mypackage'], version = '0.1', description = 'A random test lib', author = 'Peter Downs', author_email = 'your email address', url = 'https://github.com/yfpeng/mypackage', keywords = ['testing', 'logging', 'example'], classifiers = [], ) read more