title: Setting up setup.py for packaging of a single .py file and a single data file without needing to create any folders
body: <p><strong>Project tree:</strong></p>
  
  <pre><code>$.
  ├── happy_birthday-art.txt
  ├── happy_birthday.py
  ├── MANIFEST.in
  ├── README.rst
  └── setup.py
  </code></pre>
  
  <p><strong>setup.py</strong></p>
  
  <pre><code>from setuptools import setup
  
  setup(
      name='Happy_birthday',
      py_modules=['happy_birthday'],
      data_files=['happy_birthday-art.txt'],
      entry_points={
      'console_scripts': ['happy_birthday = happy_birthday:main', ],},
      long_description=open('README.rst').read(),
  )
  </code></pre>
  
  <p>Now when I do <code>python setup.py sdist</code> and then <code>pip install</code> the created <code>.tar.gz</code> file in a virtual environment I get the following message: </p>
  
  <pre><code>warning: install_data: setup script did not provide a directory for 'happy-birthday-art.txt' -- installing right in '/home/username/.virtualenvs/happy_birthday'
  </code></pre>
  
  <p>The program uses that .txt file so it fails when trying to run it afterwards.</p>
  
  <p>But I don't want to install <code>happy_birthday-art.txt</code> into a separate folder. I want to install it in the folder where <code>happy_birthday.py</code> is installed. Also, I don't want to have to use absolute paths in <code>setup.py</code>. How do I best set up my <code>setup.py</code> file?</p>