[TriPython] Problems with import after attempting to create pip installable package

Glenn Matthews glennfmatthews at gmail.com
Wed Nov 1 17:18:49 EDT 2017


Hi Steve,

Can you share your project’s directory and file structure? I have a few ideas but don’t want to send you off track. 😊

Thanks,

Glenn

Sent from a touchscreen keyboard - please forgive brevity and typos! 😊

> On Nov 1, 2017, at 3:29 PM, Steve Gambino <stevegambino at gmail.com> wrote:
> 
>   Hello friends,
>   I'm attempting to learn how to create a pip installable package. So far
>   the attempt has been relatively successful but for one nagging issue. I'm
>   hoping if I describe the issue here clearly enough that someone can offer
>   pointers to help me get to a resolution.
>   I've created the package (named get_random) successfully with setuptools
>   and have been able to do a pip install of it in a virtualenv.
>   The package "get_random" contains a trivial program also named
>   "get_random". The program, "get_random", imports one module, 'random', and
>   it has the functions, main(), get_random() and print_random(). After the
>   pip install of the get_random package, I can call the get_random program
>   from the command line in the virtualenv and get the expected results. In
>   otherwords, if I run the following in a terminal I get a resulting random
>   number, like so:
>   sgambino-m1:~/vnv_for_pip > get_random
>   0.0259274305036
>   However, if I try to import the get_random package into a python REPL I do
>   not see
>   a complete list of what is in the package. I only see the following:
>>>> dir(get_random)
>>>> ['__builtins__', '__doc__', '__file__', '__name__', '__package__',
>   '__path__']
> 
>   but I was expecting to see:
> 
>>>> dir(get_random)
>   ['__builtins__', '__doc__', '__file__', '__name__', '__package__',
>   'get_random', 'main', 'print_random', 'random']
> 
>   If I try to import the get_random package into a script and run the
>   script, I get the following error:
> 
>   ncralsgambino-m1:~/vnv_for_pip > ./try_get_random.py
>   Traceback (most recent call last):
>   ** File "./try_get_random.py", line 5, in <module>
>   ****** get_random.print_random()
>   AttributeError: 'module' object has no attribute 'print_random'
> 
>   Here is some more detail from the REPL that may give a clue.** I'm
>   wondering if there is something in the setup.py that I haven't
>   defined correctly or not defined at all. I could share that if someone
>   thinks it is worth a look. The setup.py that I started with
>   was the one that is provided from [1]https://github.com/pypa/sampleproject
>   Python 2.7.10 (default, Oct 23 2015, 19:19:21)
>   [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
>   Type "help", "copyright", "credits" or "license" for more information.
>>>> import get_random
>>>> dir(get_random)
>   ['__builtins__', '__doc__', '__file__', '__name__', '__package__',
>   '__path__']
>>>> print(get_random.__file__)
>   /Users/sgambino/vnv_for_pip/lib/python2.7/site-packages/get_random/__init__.pyc
>>>> print(get_random.__package__)
>   None
>>>> print(get_random.__path__)
>   ['/Users/sgambino/vnv_for_pip/lib/python2.7/site-packages/get_random']
>   If you have bothered to read this far, I hope this has made some sense and
>   I thank you for any ideas you may be willing to share!
>   Steve Gambino
>   --
>   Best,**
>   Steve
> 
> References
> 
>   Visible links
>   1. https://github.com/pypa/sampleproject
> _______________________________________________
> TriZPUG mailing list
> TriZPUG at python.org
> https://mail.python.org/mailman/listinfo/trizpug
> http://tripython.org is the Triangle Python Users Group


More information about the TriZPUG mailing list