Hey folks,

First off, thank you all very much for all the work being put into the Python ports infrastructure. We are using it extensively in our project and it's been a huge boon to us.

I do have a question about how Python is setup on FreeBSD by default and it has to do with "virtualenv".

http://docs.python-guide.org/en/latest/dev/virtualenvs/

Virtualenv allows you to make almost a python "chroot" to keep all your dependencies together so that tracking your deps is very easy. It's very much like Ruby's rvm.

From the site:
> A Virtual Environment, put simply, is an isolated working copy of Python which allows you to work on a specific project without worry of affecting other projects.
>
> For example, you can work on a project which requires Django 1.3 while also maintaining a project which requires Django 1.0.

It's very cool and useful for allowing multiple apps to exist on a box with different deps.

The problem I came across is that it seems "broken" if you are coming from OS X or Linux.

Specifically it seems like FreeBSD is shipping a relatively stripped down version of Python that makes using virtualenv not work.

~/gitbridge/app % python db_repo/manage.py  version_control sqlite:///db.db  
db_repo
Traceback (most recent call last):
  File "db_repo/manage.py", line 5, in <module>
  main(debug='False')
  File 
"/home/alfred/gitbridge/lib/python2.7/site-packages/migrate/versioning/shell.py",
 line 207, in main
  ret = command_func(**kwargs)
  File "<string>", line 2, in version_control
  File 
"/home/alfred/gitbridge/lib/python2.7/site-packages/migrate/versioning/util/__init__.py",
 line 155, in with_engine
  engine = construct_engine(url, **kw)
  File 
"/home/alfred/gitbridge/lib/python2.7/site-packages/migrate/versioning/util/__init__.py",
 line 140, in construct_engine
  return create_engine(engine, **kwargs)
  File 
"/home/alfred/gitbridge/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py",
 line 344, in create_engine
  return strategy.create(*args, **kwargs)
  File 
"/home/alfred/gitbridge/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py",
 line 73, in create
  dbapi =dialect_cls.dbapi(**dbapi_args)
  File 
"/home/alfred/gitbridge/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py",
 line 297, in dbapi
  raise e
ImportError: No module named pysqlite2


I have details and a workaround on my blog here (less messy than pasting the entire 200+ lines of info into this message):
http://splbio.wordpress.com/2014/04/19/using-djangosqlalchemy-and-virtualenv-on-freebsd/

Basically it seems that because we don't by default ship sqlite with Python we wind up with this odd situation where the virtualenv'd Python can't be used for the apps that I tend to use.

I'm wondering can something be done to make virtualenv work better out of the box for people?

-Alfred
_______________________________________________
freebsd-python@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-python
To unsubscribe, send any mail to "freebsd-python-unsubscr...@freebsd.org"

Reply via email to